代码之家  ›  专栏  ›  技术社区  ›  Noufal Ibrahim

Django中的动态登录/注销url

  •  2
  • Noufal Ibrahim  · 技术社区  · 15 年前

    我有一个应用程序提供这样的页面/阶段/ 鹿茸 . 鹿茸 是可变的。URL映射器只需要寻找一个[0-9A-Za-z]+来填充这个位置。

    现在,由于我的设置,我的应用程序将在/stage上扎根/ 鹿茸

    我需要使用 django.contrib.auth . 登录和注销URL不能在我的设置文件中,因为它们将根据我的应用的根位置而更改(一个可能是/stage/foo/login,另一个可能是/stage/bar/login)。

    如何使后端使用这样的动态url?

    我还有一个问题,我需要通过 生成我的URL的模板的参数。我该怎么做?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Duncan Parkes jbochi    15 年前

    如果你能得到 redirect_to 在登录模板的上下文中,可以使用一种机制来选择更改重定向URL。

    在登录模板中,向表单添加额外的隐藏输入

    <input type="hidden" name="next" value="{% url redirect_to %}">
    

    url(r'^login/$',
        auth_views.login,
        {'template_name': 'registration/login.html',
         'redirect_field_name': 'next'},
        name='auth_login'),
    

    如果这样做,则会根据 重定向到 .

    重定向到 通过具有多个命名登录url进入上下文:

    url(r'^login/$',
        auth_views.login,
        {'template_name': 'registration/login.html',
         'redirect_field_name': 'next',
         'extra_context': {'redirect_to': 'foo_url'}
        },
        name='foo_login'),
    
    url(r'^login/$',
        auth_views.login,
        {'template_name': 'registration/login.html',
         'redirect_field_name': 'next',
         'extra_context': {'redirect_to': 'bar_url'}
        },
        name='bar_login'),
    

    <input type="hidden" name="next" value="{% url session.redirect_to %}">
    

    希望这有帮助,并道歉,如果有错在代码!auth login视图的文档很难链接到 link . 转到那个链接并向上滚动一点!

        2
  •  0
  •   S.Lott    15 年前

    url( r'^stage/(?P<name>[^/]+)/login/$', some_view_function )
    

    可能是你要找的。