I would like to check if the user has permission to delete an object in the template. If the user has permission, I display or enable the button. Permissions are per group. How can I implement this in the Django template?
{% if ... %}
<button><a href="/delete">Delete</a></button>
{% endif %}
CodePudding user response:
The permissions of the user are stored in the perms variable, as specified in the documentation. You thus can check if a user has a delete permission for a model with:
{% if perms.app_name.delete_model_name %}
…
{% endif %}
with app_name and modelname the name of the app and the model respectively.
Note: It is advisable to make use of the
{% url … %}template tag [Django-doc] where the URL is resolved based on the name of a view instead of hardcoding URLs in the template.
