以下是我在“伪代码”中尝试实现的目标:
{% 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 %}
怎么做?我可以自定义权限名称 - 但仍然无法弄清楚这个。
答案 0 :(得分:1)
您需要自定义过滤器。类似的东西:
@register.filter
def check_page_perms(page, perms):
return 'can_access_page_%s' % page.name in perms
并使用它:
{% if page|check_page_perms:perms %}
答案 1 :(得分:1)
最简单的方法是略微滥用Django现有的add
模板过滤器(用于数字但适用于字符串),如下所示: