Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Mostrar todos los campos o solo determinados campos de la tabla

Estas en el tema de Mostrar todos los campos o solo determinados campos de la tabla en el foro de Python en Foros del Web. Hola, He hecho un pequeño proyecto usando el sistema de autenticación de Django. Ahora me gustaría saber como crear usuarios con diferentes privilegios para que ...
  #1 (permalink)  
Antiguo 04/09/2015, 06:38
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 12 años, 1 mes
Puntos: 1
Pregunta Mostrar todos los campos o solo determinados campos de la tabla

Hola,

He hecho un pequeño proyecto usando el sistema de autenticación de Django.

Ahora me gustaría saber como crear usuarios con diferentes privilegios para que dependiendo del usuario con que se haya accedido al sistema se muestren todos los campos o solo determinados campos de la tabla.

Imaginad que tras el login se muestra una tabla con 10 campos, pues me gustaría que si el usuario es de tipo A se muestren los 10 campos y si el usuario es de tipo B que se muestren solo algunos campos.

¿Cómo podría llevarlo a cabo?

Saludos.
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows
  #2 (permalink)  
Antiguo 07/09/2015, 05:06
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 12 años, 1 mes
Puntos: 1
Pregunta Respuesta: Mostrar todos los campos o solo determinados campos de la tabla

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.
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows

Última edición por letni; 07/09/2015 a las 05:23
  #3 (permalink)  
Antiguo 07/09/2015, 10:57
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 12 años, 1 mes
Puntos: 1
De acuerdo Respuesta: Mostrar todos los campos o solo determinados campos de la tabla

Ya lo he solucionado, el problema era que estaba poniendo esta condición:

Código:
{% if 'user.can_drink' in user.get_all_permissions %}
en vez de esta otra:

Código:
{% if 'auth.can_drink' in user.get_all_permissions %}
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows

Etiquetas: django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:14.