En mi aplicación tengo estudiantes, profesores y personal. Los miembros del personal no necesitan un perfil pero los profesores y estudiantes necesitan un perfil diferente. Prefiero no implementarlo todo yo mismo (middleware y otras cosas), entonces ¿hay alguna forma de que get_profile() devuelva un perfil diferente dependiendo del rol de un usuario?¿Cuál es la mejor manera de tener diferentes perfiles para diferentes tipos de usuarios en django?
¿Cuál es la mejor manera de tener diferentes perfiles para diferentes tipos de usuarios en django?
Respuesta
Con Django 1.1, que actualmente está en versión beta, implementaría un proxy model.
class MyUser(User):
class Meta:
proxy = True
def get_profile(self):
if self.role == 'professor':
return ProfessorProfile._default_manager.get(user_id__exakt=self.id)
elif self.role == 'student':
return StudentProfile._default_manager.get(user_id__exakt=self.id)
else:
# staff
return None
get_profile necesita el código de caché del original y así sucesivamente. Pero esencialmente podrías hacer algo como eso.
Con Django 1.0.x podría implementar clases derivadas basadas en el usuario, pero esto podría romper el código en otros lugares. Para cosas así me encantan las clases proxy, que solo agregan la funcionalidad de Python sin cambiar los modelos de la base de datos.
¿Tiene usted rad http://docs.djangoproject.com/en/dev/topics/auth/#auth-profiles?
Esa es la solución estándar.
Lo he leído. Lo que necesito es diferentes tipos de perfiles para diferentes tipos de usuarios, esa solución solo dará un tipo de perfil para todos los usuarios. –
Actualice su pregunta con un ejemplo de "diferentes tipos de perfiles". Generalmente, definimos perfiles con múltiples campos, algunos de los cuales son opcionales. ¿De qué estás hablando? –
- 1. Django - Perfiles de usuario de diferentes tipos
- 2. Cuentas de modelado para diferentes tipos de usuarios en Django
- 3. ¿Cuál es la mejor manera de separar diferentes lógicas de programación para diferentes diseños en Android?
- 4. diferentes perfiles de usuario con Django Django y perfiles registro
- 5. interfaces separadas 'admin' para diferentes tipos de usuario en django
- 6. Diferentes dependencias para diferentes perfiles de construcción en maven
- 7. ¿Cómo tener diferentes tipos de entrada para la misma función?
- 8. La mejor manera para que las clases derivadas transporten diferentes tipos de datos en C++
- 9. Establecer diferentes partes de un campo de formulario para tener diferentes tipos de letra utilizando iTextSharp
- 10. Seguimiento de dos tipos de usuarios diferentes con Google Analytics?
- 11. ¿Cuál es la mejor manera de crear dibujos para diferentes dpi
- 12. Django - Mostrando diferentes plantillas para administradores
- 13. ¿Cuál es la mejor manera de ejecutar Django en Tornado Web Server para tener async + django admin + django orm posibilidades?
- 14. ¿Hay alguna manera de tener diferentes vistas en un NSCollectionView?
- 15. Cómo abordar diferentes tipos de usuarios con Devise
- 16. Mostrando la misma página de manera diferente para usuarios con diferentes roles
- 17. ¿Cuál es la mejor manera de migrar datos en django
- 18. Terminología para diferentes tipos de funciones
- 19. ¿Lista de diferentes tipos?
- 20. ¿Por qué diferentes tipos de puntero para diferentes tipos de datos en c?
- 21. Django - Múltiples perfiles de usuario
- 22. ¿Cuál es la mejor manera de manejar objects.get de Django?
- 23. Tiempos de espera de sesión diferentes para diferentes usuarios en la misma aplicación web
- 24. set_intersection para dos tipos diferentes de conjuntos
- 25. matriz bidimensional de diferentes tipos
- 26. husos horarios de los diferentes usuarios
- 27. ¿Configurar la codificación para diferentes tipos de archivos en maven?
- 28. Índice de MongoDB en diferentes tipos
- 29. Registro Django y múltiples perfiles
- 30. ¿Cuál es la mejor manera de encontrar el directorio de inicio de los usuarios en Java?
Estos parecen útiles, pero esto todavía plantea exactamente el mismo problema que tengo con mi propio uso de múltiples tipos de usuario/perfil: las aplicaciones existentes no lo conocen. Simplemente crean instancias de usuario, por lo que este buen método se ignora por completo. – ironfroggy
Sí, los modelos de usuarios múltiples todavía son un tanto problemáticos, pero se pueden resolver los diferentes perfiles basados en roles. –