[英]How can only certain users see the page?
我用Django创建了一个系统,我有几个用户,这些用户可以有不同的rank
。 我有一个页面,但我希望只有一个级别( lead
)可以看到这些页面。 我怎样才能做到这一点?
模型.py
class UserProfile(AbstractUser):
ranks = (
('analyst', 'Analyst'),
('seniorAnalyst', 'Senior Analyst'),
('lead', 'Lead'),
('manager', 'Manager'),
('seniorManager', 'Senior Manager'),
('director', 'Director'),
('regionalDirector', 'Regional Director'),
('cfo', 'Chief Financial Officer'),
)
comp_name = models.CharField(max_length=200, default='', blank=True, null=True)
user_id = models.UUIDField(default=uuid.uuid4(), editable=False, unique=True)
username = models.CharField(max_length=500, unique=True)
...
视图.py
@login_required
def lead_page(request):
return render(request, 'lead.html')
您可以为此使用 Django 的user_passes_test装饰器。
from django.contrib.auth.decorators import user_passes_test
def is_lead(user):
return user.rank == 'lead'
@user_passes_test(is_lead)
@login_required
def lead_page(request):
return render(request, 'lead.html')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.