【问题标题】:Django dynamic template variable inside if clauseif子句中的Django动态模板变量
【发布时间】:2014-09-13 04:19:17
【问题描述】:

这是我试图在“伪代码”中实现的目标:

{% for page in pages %}
    {% if 'can_access_page_{{page.name}}' in perms  %}
        <li>
            <a href="{{page.url}}" id="page_link_{{page.id}}" target="_blank">{{ page.name }}</a>
        </li>
    {% endif %}
{% endfor %}

如何做到这一点?我可以自定义权限名称 - 但仍然无法弄清楚这个。

【问题讨论】:

    标签: django templates variables


    【解决方案1】:

    您需要一个自定义过滤器。比如:

    @register.filter
    def check_page_perms(page, perms):
        return 'can_access_page_%s' % page.name in perms
    

    并使用它:

    {% if page|check_page_perms:perms %}
    

    【讨论】:

    • 谢谢,我最终使用了添加模板过滤器。
    【解决方案2】:

    最简单的方法是稍微滥用 Django 现有的add 模板过滤器(适用于数字但适用于字符串),如以下答案所示:

    https://stackoverflow.com/a/4524851/202168

    【讨论】:

    • 谢谢,我是这样做的。
    猜你喜欢
    • 1970-01-01
    • 2017-03-25
    • 2020-09-27
    • 1970-01-01
    • 2013-08-08
    • 2018-06-23
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    相关资源
    最近更新 更多