Verificar desde un template si un usuario pertenece a un grupo.
Creamos una estructra de directorio similar a esta:
app/
__init__.py
models.py
templatetags/
__init__.py
mis_tags.py
views.py
El archivo __init__.py
no contendrá código (quedará vacío).
En el tamplatetag
from django import template
from django.contrib.auth.models import Group
register = template.Library()
@register.filter(name='has_group')
def has_group(user, group_name):
group = Group.objects.get(name=group_name)
return True if group in user.groups.all() else False
def has_group(user, group_name):
try:
group = Group.objects.get(name=group_name)
return True if group in user.groups.all() else False
except:
return False
return group
En el template importaremos nuestro templatetag
{% load auth_extras %}
{% if request.user|has_group:"mygroup" %}
<p>El usuario pertenece al grupo</p>
{% else %}
<p>El usuario no pertenece al grupo</p>
{% endif %}