Skip to content

Instantly share code, notes, and snippets.

@robertowest
Created March 24, 2022 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save robertowest/f65174a6dfcb326e3a7d703e031bef93 to your computer and use it in GitHub Desktop.
Save robertowest/f65174a6dfcb326e3a7d703e031bef93 to your computer and use it in GitHub Desktop.

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 %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment