python - 在 Django 中使用 CBV 进行重定向

标签 python django redirect django-class-based-views

我相信这是一个简单的问题,只是找不到解决方案。我有一个 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)

最佳答案

我强烈建议不要重写getpost方法。相反,重写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/

相关文章:

python - Urls.py 无法将 #(pound) 字符传递给 Django 中的 View ,

java - Spring MVC - 重定向后保留请求参数

ruby-on-rails - 如果已经登录的用户尝试再次注册,则自定义 Devise 重定向

apache - 使用 ,htaccess 将非 www 重定向到 www

Python pygame事件循环类型错误

python - 如何使用 python 在 Facebook 上给自己发送消息?

python - Django DateField 的默认值格式

python - Lasagne/nolearn autoencoder - 如何获得隐藏层输出?

python - 使用 iterrows() 时如何通过索引访问列

django - 使用 python 3 用 django 创建 PDF