我在名为Company
的{{1}}上有一个字段leave_approvers
到ManyToManyField
。
Users
可以批准他们作为休假审批人的公司中的其他用户的许可。他们还会在请假时收到电子邮件。
我现在想根据用户是否为leave_approvers
来显示或隐藏主布局中的Approve Leave
标签。
我决定让leave_approver
字段存在缺陷,因为我应该使用内置授权或django-guardian之类的内容。请注意,我正在向leave_approver
发送电子邮件,这意味着
我是否可以在leave_approvers
中进行查询,以检查用户是否为base.html
。如何做到这一点肯定会有性能受损?
答案 0 :(得分:0)
在考虑使用django权限(通过上下文处理器自动添加到上下文)之后,我认为这是最佳途径。 在模板中使用以下内容:
{% if perms.foo.can_vote %}
但是,在我的情况下,我偷工减料并查询基本模板中的所有请假批准者,这比上下文中预先构建的perms
慢得多。
{% if user in user.company.leave_approvers.all %}
<li role="separator" class="divider"></li>
<li><a href="{% url 'leave:pending' %}">Pending Leave Approval</a></li>
{% endif %}