我相信这是一个简单的问题,只是找不到解决方案。我有一个 View 在服务器上执行一些工作,然后将用户传递回另一个 View ,通常是原始调用 View 。
我现在渲染它的方式,url 没有重定向,即它是原始接收 View 的 url。因此,在用户刷新的情况下,他们将再次运行该服务器代码。
class CountSomethingView(LoginRequiredMixin, View):
def get(self, request, *args, **kwargs):
# so some counting
view = MyDetailView.as_view()
return view(request, *args, **kwargs)
最佳答案
我强烈建议不要重写get
或post
方法。相反,重写dispatch
。因此,扩展 Platinum Azure 的答案:
class CountSomethingView(LoginRequiredMixin, RedirectView):
permanent = False
def get_redirect_url(self, **kwargs):
url = you_can_define_the_url_however_you_want(**kwargs)
return url
def dispatch(self, request, *args, **kwargs):
# do something
return super(CountSomethingView, self).dispatch(request, *args, **kwargs)
关于python - 在 Django 中使用 CBV 进行重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18579192/