Python 管理中的Django重定向失败
通过单击管理界面中的saveasnew按钮保存对象后,我想重定向到另一个url:Python 管理中的Django重定向失败,python,django,django-admin,Python,Django,Django Admin,通过单击管理界面中的saveasnew按钮保存对象后,我想重定向到另一个url: admin.py class AirplanesAdmin(admin.ModelAdmin): def save_model(self, request, obj, form, change): obj.save() if "_saveasnew" in request.POST: self.message_user(request, 'YAY!!!') retu
admin.py
class AirplanesAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
obj.save()
if "_saveasnew" in request.POST:
self.message_user(request, 'YAY!!!')
return HttpResponseRedirect(reverse('admin:routes_airplanes_change',
args=(obj.pk,),
current_app=self.admin_site.name))
“耶”的信息显示。。。但是django将我重定向到pbject页面列表中,而不是新的对象页面。。。即使此代码也不起作用:
admin.py
class AirplanesAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
obj.save()
if "_saveasnew" in request.POST:
self.message_user(request, 'YAY!!!')
redirect('http://example.com')
我看到“耶”,但它再次将我重定向到列表对象。。。我做错了什么?
save\u model
返回None。它的结果没有在任何地方使用。因此,返回什么并不重要(redirect(…)
或None
)
我想
def response_add(self, request, new_object):
pass
及
这就是你要找的
如果我们研究django源代码,我们将看到以下内容:
def response_change(self, request, obj):
"""
Determines the HttpResponse for the change_view stage.
"""
及
您需要返回redirect(),不幸的是,这没有帮助。django没事吧?我使用的是1.5.5版本,对我来说很有用。。。但是在admin.py中,我需要覆盖整个方法响应\u add。。。这是唯一的办法吗?我的意思是,为什么从save\u model方法中重定向不起作用?重定向不起作用是因为
save\u model
returnNone
。它的结果没有在任何地方使用。重定向结果并不是异常,只是一个response实例。。。这个问题是通过重写response_add方法来解决的
def response_change(self, request, obj):
"""
Determines the HttpResponse for the change_view stage.
"""
def response_add(self, request, obj, post_url_continue=None):
"""
Determines the HttpResponse for the add_view stage.
"""