我在Django模板中的权限有一个小问题。
基于权限,我正在尝试在菜单栏中显示我的项目的图标。我想拥有它,以便如果用户有权添加项目的新后续内容,他们可以看到图标,如果他们没有该权限,则不显示链接。
我的权限语法是follow.add_followup
,这是我从打印user.get_all_permissions()
得到的。
我已在模板中尝试了此代码:
...
{% if user.has_perm('followup.add_followup') %}
<li><a href="{% url followup-new p.id %}">Log</a></li>
{% endif %}
...
但当我显示模板时,会出现以下错误:
TemplateSyntaxError at /project/232/view/
Could not parse the remainder: '(followup.add_followup)' from 'user.has_perm(followup.add_followup)'
有什么想法吗?这让我头疼!:)
Django文件详细说明答案2: https://docs.djangoproject.com/en/dev/topics/auth/#id9
这种复杂的决策过程具有视图功能。
或者它进入上下文,然后呈现给模板。
https://stackoverflow.com/search?q=%5Bdjango%5D+context
When to use context processor
在你看来这样做
那么你的模板就是
因为您使用的是Django权限系统,所以最好使用以下模板语法。。。
编辑:Django自动为每个模型创建3个权限,“添加”、“更改”和“删除”。如果不存在用于添加链接的模型,则必须在模型类Meta中添加来自相关模型的权限。。。同样地:
somemodels.py
在Django auth用户管理页面中,可以看到您的权限。在模板层,权限以基本的Django样式呈现
在这种情况下,它将类似于:
如果没有模型,与您希望执行的作业相关,则向模型添加权限。。。
在模板中,您可以编写
要将可用权限密封到该用户,其中
somemodel
是将权限添加到其模型之一的应用程序的名称。相关问题 更多 >
编程相关推荐