首页 > 解决方案 > 元素可用于多于一个的组

问题描述

例如,我的模板中有一个仅可用于内容的按钮:

{% if request.user.is_staff %}
<a href="{% url 'unosZanraKnjige' %}" class="button">Add new</a>
{% endif %}

我在http://127.0.0.1:8000/admin/中创建了一个名为“Djelatnici”的组。

是否可以使某些元素(在这种情况下为按钮)仅适用于具有“或”(||)条件的特定组,例如:

{% if request.user.is_staff %} || {% if request.user.is_djelatnici %}
<a href="{% url 'unosZanraKnjige' %}" class="button">Add new</a>
{% endif %}

标签: djangodjango-templates

解决方案


您可以使用Django 自定义模板标签来做到这一点

像这样的东西:

my_custom_tag.py

@register.filter(name='is_my_custom_group')
def is_my_custom_group(user, group_name):
    return user.groups.filter(name=group_name).exists()

然后在您的模板上导入此标签并像这样使用:

模板.html

{% load is_my_custom_group %}

{% if request.user.is_staff or request.user|is_my_custom_group:'Djelatnici' %}
    <a href="{% url 'unosZanraKnjige' %}" class="button">Add new</a>
{% endif %}


推荐阅读