Django根据用户类型显示html页面
我想根据用户类型(管理员、来宾、学生等)显示我网站的主页。最好为来宾用户显示登录页面的链接,但是对于已经通过身份验证的用户,应该隐藏此链接。对于管理员,应该有一个指向django admin的链接。除此之外,其他用户角色的主页也存在一些差异 实现这一点的好方法是什么?我有几种选择:Django根据用户类型显示html页面,django,django-templates,Django,Django Templates,我想根据用户类型(管理员、来宾、学生等)显示我网站的主页。最好为来宾用户显示登录页面的链接,但是对于已经通过身份验证的用户,应该隐藏此链接。对于管理员,应该有一个指向django admin的链接。除此之外,其他用户角色的主页也存在一些差异 实现这一点的好方法是什么?我有几种选择: 为每个用户角色创建html页面:home\u guest.html,home\u admin.html 创建一个html页面,但在其中放入一些if子句,如{%if user.is\u authenticated%}
home\u guest.html
,home\u admin.html
{%if user.is\u authenticated%}
您可以从文档开始,使用:
从django.contrib.auth.decorators导入用户\u通过\u测试
def电子邮件检查(用户):
返回user.email.endswith(“@example.com”)
@用户通过测试(电子邮件检查)
定义我的视图(请求):
...
这大致意味着,如果用户通过了电子邮件endswith
中提供的测试,那么他们将能够看到一个视图。在我的例子中,我稍微偏离了这一点,创建了一个
类用户(AbstractBaseUser):
状态:1,2本身,在我的模型中:
学生=1
教师=2
状态选择=((学生,“学生”),(教师,“教师”),)
status=models.IntegerField(选项=status\u选项)
这使您可以创建is\u status
属性:
@属性
def为_状态(自身):
返回自我状态
然后在登录视图中,您可以使用这些属性。如果为1,则显示此视图,否则,显示另一个视图。选择2。参数依赖性是模板的作用。