由于Django的1.7它可以覆盖一个管理型的response_delete
方法来迫使它删除后重定向到一个定制URL。Django管理重定向到父对象后删除
class MyAdmin(admin.ModelAdmin):
def response_delete(self, request, obj_display, obj_id):
return HttpResponseRedirect("my_url")
我需要更进一步借此并重定向到已删除对象的父,这似乎应该是一个相当常见的情况。
但是由于对象的删除没有obj
可从获取父ID。
的哈克解决方案,我发现是通过父ID在子对象(obj_display
)的Unicode表示,然后解析字符串找到它:
obj_display = '1 (Product 123)'
integers = re.findall(r'\d+', obj_display)
product_id = int(integers[1])
product_id = 123
然而,这似乎是一个不雅的解决方案。例如,如果对象的unicode方法改变了重定向可能会中断。有没有更好的办法?
编辑
由“父”与“子”我的意思是删除(“子”)的对象有一个外键到另一个对象(它的“父”)
你是什么意思与“已删除对象的父”? – trinchet
我的意思是删除的对象有一个外键给另一个对象,这是它的'父'。 –