2017-07-16 31 views
0

我有以下两个网址:Django的:多个登录重定向基于路径

url(r'^login/$',django.contrib.auth.views.login,{'template_name': 'meta/login.html'},name='login'), 
url(r'^loginiOS/$', django.contrib.auth.views.login, {'template_name': 'meta/login.html'}, name='loginiOS'), 

他们加载登录页面,但“loginiOS” URL让我隐藏在iPhone版本的某些选项,如菜单。一个例子可以看到下面:

{% if 'iOS' in request.path %} 
    {% else %} 
    {% include "meta/fragments/navbar.html" %} 
    {% block header %}{% endblock %} 
    {% endif %} 

但是,每当我登录它总是重定向我“https://str8red.com/welcome”这是在设置文件中设置。我想这样做的是登录页面重定向如下:

  • 如果从此str8red.com/login重定向到stre8red.com/welcome
  • 如果从str8red.com/loginiOS然后重定向to str8red.com/welcomeiOS

我已经尝试了一些想法,看看没有成功的stackoverflow。任何帮助将不胜感激。

非常感谢,艾伦。

+0

你可以用任何一个参数或通过反向匹配网址不管你喜欢 – Gahan

+0

对不起,你能在两个中的一个阐述它匹配建议的解决方案请我在如何执行你的建议不清楚。 –

+0

重写'django.contrib.auth.views.login' – hadi

回答

1

如果您希望用户在成功登录后被重定向到某个页面,则可以添加next param来形成。喜欢的东西:

<form> 
    {% if 'iOS' in request.path %} 
    <input type="hidden" name="next" value="iosUrl" /> 
    {% endif %} 
</form> 
+0

撞在头上,谢谢。非常感谢其他人也提供了建议。 –

+0

你好ookami.kb,我试过类似的更改密码选项,但它没有奏效。如果你有任何想法,请你能帮助这里:https://stackoverflow.com/questions/45176991/django-redirect-change-password-url。 –