https://docs.djangoproject.com/en/4.1/topics/auth/default/#permissions
Jeito Errado
{% if user.has_perm('expense.view_expense') %}
<p>OK</p>
{% endif %}
Dá erro de TemplateSyntaxError
Could not parse the remainder: '('expense.view_expense')' from 'user.has_perm('expense.view_expense')'
Jeito Certo
{% if perms.expense.view_expense %}
OK
{% endif %}
Se quiser ver todas as permissões do usuário faça
{{ perms.all }}
E se o usuário não tiver nenhuma permissão, mas pertencer a um grupo que tem permissões, essas permissões serão válidas pra ele.
No exemplo:
usuário: regis
grupo: vendedor
permissões do grupo:
- add_expense
- change_expense
- view_expense