Django выводит все разрешения пользователя в шаблоне
Я редактирую разрешения пользователя в шаблонах. И я хочу отображать отмеченный флажок, если у пользователя есть разрешения, или не отмеченный, если у пользователя нет определенных разрешений.
Мои коды View.py выглядят следующим образом.
def EditUserView(request,id=0):
user = User.objects.get(pk=id)
permission = Permission.objects.all()
return render(request,'edituser.html',{"userdata":user,"permissions":permission})
Код моих шаблонов приведен ниже.
<div class="table-wrapper">
<table class="table">
<thead>
<tr>
<th>Permissions</th>
<th>Status</th>
</tr>
</thead>
<tbody>
{% for perm in permissions%}
<tr>
<td id="perm">{{perm}}</td>
<td><input type="checkbox" name="status" id="status" onclick="ChangeUserPermissions(this,userid='{{userdata.id}}',permission='{{perm}}')"></td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
Мои цели кода - отображать только отмеченный флажок, если у вас есть права, или не отмеченный, если у вас нет прав
Так что вам нужно зарегистрировать тег custome для этого он может быть фильтром:
@register.filter
def has_perm(user, perm):
return user.has_perm(perm)
then in template:
{% for perm in permissions%}
<tr>
<td>{{perm}}</td>
<td><input type="checkbox" name="status" onclick="ChangeUserPermissions(this,userid='{{userdata.id}}',permission='{{perm}}')"
{% if user|has_perm:perm %} selected {% endif %}>
</td>
</tr>
{% endfor %}
эти идентификаторы в тегах td не будут уникальными