首页 > 解决方案 > Django如何创建仅对某些类型的用户可见的按钮

问题描述

我用 Django 创建了一个系统。我有几个用户,这些用户可以有不同rank的 s。我有一个页面,只有 ' lead' 用户可以看到该页面。在用户个人资料页面中,我想创建一个仅对leads 可见的按钮。

模型.py

class UserProfile(AbstractUser):
    ranks = (
        ..
        ('lead', 'Lead'),
        ('manager', 'Manager'),
        ...
    )
    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

def is_lead(user):
    return user.rank == 'lead'

@user_passes_test(is_lead)
@login_required
def lead_page(request):

    return render(request, 'lead.html')

profile.html

<div class="col">
     <a href="/leadpage" class="btn btn-outline-success"> Enter </a>
</div>

标签: pythondjango

解决方案


您检查用户的排名。

{% if user.rank == "lead" %}
<div class="col">
     <a href="/leadpage" class="btn btn-outline-success"> Enter </a>
</div>
{% endif %}

等等瞧


推荐阅读