我相信这是一个简单的方法,只是无法找到解决方案。我有一个视图,它在服务器上做了一些工作,然后将用户传递回另一个视图,通常是原始调用视图。

我现在渲染它的方式是,URL不被重定向,即它是原始接收视图的URL。因此,在用户刷新的情况下,他们将再次运行该服务器代码。

class CountSomethingView(LoginRequiredMixin, View):
    def get(self, request, *args, **kwargs):
        # so some counting
        view = MyDetailView.as_view()
        return view(request, *args, **kwargs)

最佳答案

我强烈建议不要覆盖getpost方法。而是改写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/

10-13 02:59