Python 管理中的Django重定向失败

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

通过单击管理界面中的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!!!')
        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
return
None
。它的结果没有在任何地方使用。重定向结果并不是异常,只是一个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.
    """