Par*_*rry 0 python django django-forms python-3.x django-2.x
我正在构建一个 django 应用程序,其中一个组件是某些模型的简单 CRUD。我创建了添加、编辑、删除、查看详细信息和列表页面。我已经在列表页面和查看详细信息页面上提供了编辑和删除记录的按钮。由于列表页面和内部详细信息页面的编辑按钮使用相同的视图和模板,因此成功 url 可以链接回查看详细信息页面或列表页面。我想添加代码,以便如果用户从查看详细信息转到编辑页面,则成功后重定向回详细信息页面,但如果用户从列表页面转到编辑页面,则用户将被重定向到列表页面(也是列表页面)有分页,所以用户应该回到他/他所在的页面。
一种方法是在会话中存储用户来自的 url,然后在成功时将它们重定向回 url。这个 mixin 可以添加到你的视图中
class RedirectToPreviousMixin:
default_redirect = '/'
def get(self, request, *args, **kwargs):
request.session['previous_page'] = request.META.get('HTTP_REFERER', self.default_redirect)
return super().get(request, *args, **kwargs)
def get_success_url(self):
return self.request.session['previous_page']
Run Code Online (Sandbox Code Playgroud)
然后你可以在你的基于类的视图中子类化这个 mixin
class MyModelUpdateView(RedirectToPreviousMixin, UpdateView):
model = MyModel
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
903 次 |
| 最近记录: |