繁体   English   中英

如何只有特定用户才能看到该页面?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM