在我的 django 项目中,我创建了一个指向管理界面的链接,以便用户可以编辑对象:
<a href="{% url admin:mode_change object.id %}">modify object</a>
这工作正常,但在用户完成管理界面中的对象编辑后,我希望自动将用户带回原始 URL(或其他一些 URL)。目前,在用户修改对象后,她/他最终会在管理界面中查看所有model
条目。
有没有办法为管理员链接提供返回 url?
在我的 django 项目中,我创建了一个指向管理界面的链接,以便用户可以编辑对象:
<a href="{% url admin:mode_change object.id %}">modify object</a>
这工作正常,但在用户完成管理界面中的对象编辑后,我希望自动将用户带回原始 URL(或其他一些 URL)。目前,在用户修改对象后,她/他最终会在管理界面中查看所有model
条目。
有没有办法为管理员链接提供返回 url?
这似乎有效:
admin.py:
class ModelAdmin(admin.ModelAdmin):
form = ModelForm
def response_change(self, request, obj):
res = super(ModelAdmin, self).response_change(request, obj)
if "next" in request.GET:
return HttpResponseRedirect(request.GET['next'])
else:
return res
并在模板中(currentUrl
视图中生成的变量在哪里):
<a href="{% url admin:mode_change object.id %}?next={{ currentUrl }}">modify object</a>
对于这个问题,“response_post_save_change”方法会更好,因为只有在成功保存后才会调用它。在 Django 3.1 上,这对我有用:
def response_post_save_change(self, request, obj):
res = super().response_post_save_change(request, obj)
if "next" in request.GET:
return HttpResponseRedirect(reverse(...))
else:
return res