gpt4 book ai didi

django-admin:对象保存后如何重定向到另一个URL?

转载 作者:行者123 更新时间:2023-12-02 06:57:59 24 4
gpt4 key购买 nike

在 Django Admin 中,保存对象总是返回到它的对象列表。现在我想在保存付款对象后转到发票对象列表。

我尝试了几件事:

在 admin.py 中:

@receiver(post_save, sender=Payment)
def custom_redirect(sender, instance, **kwargs):
return HttpResponseRedirect('/admin/sales/invoice')

或者

class PaymentAdmin(VersionAdmin, admin.ModelAdmin):
def change_view(self, request, object_id, extra_context=None):
return HttpResponseRedirect('/admin/sales/invoice')

我尝试使用redirect()而不是HttpResponseRedirect,但也没有效果。在将错误代码插入 post_save 时,我收到一条错误消息 - 所以它确实被触发,但重定向不会发生。

任何提示都会非常感激 - 因为我在这个“简单”问题上被困了好几天。

谢谢

最佳答案

您可以覆盖 response_addresponse_change方法。

from django.shortcuts import redirect

class PaymentAdmin(VersionAdmin, admin.ModelAdmin):
def response_add(self, request, obj, post_url_continue=None):
return redirect('/admin/sales/invoice')

def response_change(self, request, obj):
return redirect('/admin/sales/invoice')

不可能从信号处理程序内部返回响应。您不想覆盖 change_view,因为它会处理保存表单以及返回响应。

关于django-admin:对象保存后如何重定向到另一个URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42230437/

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