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>

Мои цели кода - отображать только отмеченный флажок, если у вас есть права, или не отмеченный, если у вас нет прав

enter image description here

Так что вам нужно зарегистрировать тег 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 не будут уникальными

Вернуться на верх