Python 如何在Django管理模板中检查当前查看模型的权限

Python 如何在Django管理模板中检查当前查看模型的权限,python,django,templates,Python,Django,Templates,如何检查登录用户是否对当前查看的模型具有添加/更改/etc权限?我试图用自定义按钮覆盖admin/change\u list\u object\u tools.html中的对象工具项,但我似乎不知道如何检查用户是否可以对该模型进行更改以决定按钮是否出现。您可以在模板中使用变量来检查特定权限: {% if perms.your_app_label.permission_name %} do something here {% endif %} 确保您有django.contrib.aut

如何检查登录用户是否对当前查看的模型具有添加/更改/etc权限?我试图用自定义按钮覆盖
admin/change\u list\u object\u tools.html
中的
对象工具项
,但我似乎不知道如何检查用户是否可以对该模型进行更改以决定按钮是否出现。

您可以在模板中使用变量来检查特定权限:

{% if perms.your_app_label.permission_name %}
    do something here
{% endif %}

确保您有
django.contrib.auth.context\u处理器。auth
处于设置中。

我不需要更改每个应用的
应用标签吗?我想知道我是否可以覆盖该文件一次,并让它对照当前查看的模型进行检查,不管它是什么,也不管它来自哪个应用程序。@Zoetrophy,我确实相信这是可能的-根据代码库,Django在
change\u list.html
模板:
{%block bodyclass%}{block.super}}app-{opts.app u label}模型-{opts.model_name}更改列表{%endblock%}
。因此,您可以创建一个自定义,将上下文传递到其中,并在
条件下使用它,这样您就不需要硬编码应用程序标签或权限名称。