两个不同观点的一个网址

时间:2014-10-26 09:52:23

标签: django django-templates django-views django-urls django-1.7

我正在开发一个拥有两种用户类型的网站,并且在用户通过身份验证后,项目所有者需要两个不同的主页(模板),所以,我试过这个:

URL

# home a
url(r'^home/$', HomeAView.as_view(), name='home-a'),
# home b
url(r'^home/$', HomeBView.as_view(), name='home-b'),

有些人喜欢我的log_in视图:

if user.typeUser == "HA":
    print('Go to Home A')
    return redirect(reverse('sesion:home-a'))
else:
    print('Go to Home B')
    return redirect(reverse('sesion:home-b'))

所以问题是用户通过身份验证后,网站总是转到第一个网址! (家A)我通过控制台打印了一个小旗,条件正在工作,并通过sesion:home-a或home-b,但总是去家里 - a。如果我指定了不同的名字,为什么反向不解析网址呢?我不能为两个观点提供一个网址吗?

感谢您的帮助,我正在研究Django 1.7

1 个答案:

答案 0 :(得分:2)

不,您不能为同一个网址提供两种不同的观点。 Django根据URL和定义的路由决定使用哪个视图函数。

在唯一视图中使用自定义代码,根据用户类型呈现不同的模板:

def home(request):
    if user.typeUser == "HA":
        render(request, 'template_a.html')
    else:
        render(request, 'template_b.html')