【问题标题】:Element available for more groups than one元素可用于多于一个的组
【发布时间】:2019-10-13 23:17:18
【问题描述】:

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

{% 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 %}

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    你可以使用Django Custom Template tags来做到这一点

    类似这样的:

    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()
    

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

    template.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 %}
    
    

    【讨论】:

    • 是的,我做到了,最终成功了,谢谢。我不确定他们在使用日志和组系统时为什么不简化它。
    猜你喜欢
    • 1970-01-01
    • 2014-11-16
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-12-27
    相关资源
    最近更新 更多