[英]Django how to create button that visible only some type of users
我用 Django 創建了一個系統。 我有幾個用戶,這些用戶可以有不同的rank
。 我有一個頁面,只有“ lead
”用戶才能看到該頁面。 在用戶個人資料頁面中,我想創建一個僅對lead
客戶可見的按鈕。
模型.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')
配置文件.html
<div class="col">
<a href="/leadpage" class="btn btn-outline-success"> Enter </a>
</div>
您檢查用戶的排名。
{% if user.rank == "lead" %}
<div class="col">
<a href="/leadpage" class="btn btn-outline-success"> Enter </a>
</div>
{% endif %}
等等
您必須在context
中包含一個變量,該變量控制模板中按鈕的可見性。 所以想象你的觀點是這樣的:
def myview(request):
# pseudocode!
context = dict()
if user is lead:
context['show-lead-button'] = True
return render(request, 'mytemplate.html', context)
在您的模板中,您必須檢查此變量:
{% if show-lead-button %}
<a href="#">Only lead can see!</a>
{% endif %}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.