返回重定向

2024-10-03 06:27:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要返回RedirectView。这些都不起作用:

class FooView(View):
  return SomeRedirectView

class FooView(View):
  return SomeRedirectView.as_view()

class FooView(View):
  return HTTPResponseRedirect(SomeRedirectView)

如何返回RedirectView?在

编辑:伙计们,我的想法是我需要下课回来。但看起来没人这么做。那么一个人如何从课堂上回来呢?在

编辑2:对不起,我还不清楚。我知道如何使用单个重定向视图重定向用户。我有一个重定向视图:

^{pr2}$

我需要将MyRedirectView作为单独的视图,因为它在某个地方被用作独立视图。但是我有完全不同的观点,它必须使用逻辑,然后'调用'MyRedirectView。在

问题是,SomeOtherView应该是什么样子?(不是MyRedirectView

class SomeOtherView(View):
  def get():
    return MyRedirectView ????

解决方案:在其他SO成员的帮助下,我得出了我的想法是错误的结论。我不必重复代码,我可以使用函数。我不能调用类或返回视图。但我可以使用public函数,并从MyRedirectView和FooView(或任何其他视图)中调用它。在

谢谢大家的帮助和讨论!在


Tags: 函数view视图编辑returnas重定向class
2条回答

我不知道你为什么认为你需要返回一个观点。如果现有视图需要返回重定向,则只需执行以下操作:

from django.shortcuts import redirect


class SomeOtherView(View):
  def get(request):
    ... logic here...
    return redirect(my_redirect_destination)

docs您的视图需要是RedirectView的子类:

from django.core.urlresolvers import reverse
from django.views.generic.base import RedirectView

class MyRedirectView(RedirectView):

    permanent = False
    query_string = True

    def get_redirect_url(self, pk):
        return reverse('example', args=(pk,))

Here's a good example使用基RedirectView


尽管您没有提到您的urls.py文件,但您需要在其中调用MyRedirectView.as_view()。同样,在文档中有很好的例子。要点如下:

^{pr2}$

相关问题 更多 >