gpt4 book ai didi

python - 管理员中的 Django 重定向失败

转载 作者:太空宇宙 更新时间:2023-11-04 03:53:55 24 4
gpt4 key购买 nike

通过单击管理界面中的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))

"YAY" 消息显示了...但是 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')

我看到“YAY”,但它再次将我重定向到列表对象...我做错了什么?

最佳答案

save_model返回无。并且它的结果没有在任何地方使用。所以返回什么并不重要( redirect(...)None )

我觉得

def response_add(self, request, new_object):
pass

def response_change(self, request, new_object):
pass

是您正在寻找的。

如果我们查看 django 源代码,我们将看到以下内容:

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.
"""

关于python - 管理员中的 Django 重定向失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19766866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com