我相信这是一个简单的方法,只是无法找到解决方案。我有一个视图,它在服务器上做了一些工作,然后将用户传递回另一个视图,通常是原始调用视图。
我现在渲染它的方式是,URL不被重定向,即它是原始接收视图的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
。因此,要扩展白金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/