Hola,
He buscado diferentes soluciones para el problema y creo que asignando un permiso al usuario y luego comprobando ese permiso en el html puede ser buena solución. El caso que no me funciona, he hecho lo siguiente en el código de la vista que se ejecuta cuando se da de alta un usuario:
Código:
content_type = ContentType.objects.get_for_model(User)
permission = Permission.objects.create(codename='can_drink', name='Can Drink', content_type=content_type)
user.user_permissions.add(permission)
y luego en el html de la plantilla tengo esto:
Código:
{% if 'user.can_drink' in user.get_all_permissions %}
{{ user }} can drink.
{% else %}
{{ user }} can´t drink.
{% endif %}
El código se ejecuta sin errores pero siempre se mete por el else, hago un {{ user.get_all_permissions }} para ver los permisos en la plantilla y me saca esto:
set([u'auth.can_drink'])
Con lo que lo está metiendo cuando doy de alta un usuario.
¿Qué es lo que falta?
Gracias.