Dans ma demande, j'ai des étudiants, des professeurs et du personnel. Les membres du personnel n'ont pas besoin d'un profil, mais les professeurs et les étudiants ont besoin d'un profil différent. Je préférerais ne pas l'implémenter moi-même (middleware et autres), donc y at-il de toute façon que get_profile() retourne un profil différent en fonction du rôle d'un utilisateur?Quelle est la meilleure façon d'avoir différents profils pour différents types d'utilisateurs dans django?
Répondre
Avec Django 1.1, qui est actuellement en version bêta, j'implémenterais 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 a besoin du code de mise en cache de l'original et ainsi de suite. Mais essentiellement, vous pourriez faire quelque chose comme ça. Avec Django 1.0.x, vous pouvez implémenter des classes dérivées basées sur l'utilisateur, mais cela peut casser le code à d'autres endroits.
Pour ce genre de choses, j'adore les classes proxy, qui ajoutent simplement la fonctionnalité python sans changer les modèles de base de données.
Avez-vous rad http://docs.djangoproject.com/en/dev/topics/auth/#auth-profiles?
C'est la solution standard.
J'ai lu ça. Ce dont j'ai besoin, c'est de différents types de profils pour différents types d'utilisateurs, cette solution ne donnera qu'un type de profil pour tous les utilisateurs. –
Veuillez mettre à jour votre question avec un exemple de «différents types de profils». Habituellement, nous définissons des profils avec plusieurs champs, dont certains sont facultatifs. Qu'est-ce que tu racontes? –
- 1. Meilleure façon de gérer différents types d'utilisateurs?
- 2. Comment gérer différents types d'utilisateurs?
- 3. Différentes dépendances pour différents profils de construction dans maven
- 4. xsd même élément, différents types?
- 5. différents types d'entité dans un seul fetchedResultsController?
- 6. Comment afficher une vue JSP différente pour différents types d'objets
- 7. Types OCaml avec différents niveaux de spécificité
- 8. Quelle est la meilleure façon de tester les services WCF?
- 9. différents fichiers de configuration pour différents serveurs
- 10. Comment réutiliser la même variable, mais pour différents types?
- 11. Définir différents types de nombres en C#
- 12. Différents types de build utilisant CruiseControl.NET
- 13. Différents types de types CATransition disponibles dans l'iPhone sdk
- 14. Meilleure conception de base de données pour un système de discussion avec différents types de catégories?
- 15. Quelle est la meilleure façon de lire GetResponseStream()?
- 16. Quels sont les différents types d'échantillonneurs HLSL?
- 17. rails trombone différents types de fichiers problème
- 18. HttpHandlers personnalisés et différents types de gestionnaires
- 19. Quelle est la meilleure façon de créer un seul champ dans la table est conçu pour garder le calcul d'un champs de table différents
- 20. comparaison des types différents en python
- 21. Can JScript.NET distingue différents types d'exception .NET
- 22. Assembly.GetType() et typeof() retournent des types différents?
- 23. Différence entre les différents types de SQL?
- 24. Que fait le paramètre Longueur mySQL pour différents types?
- 25. 2 différents types de coutume UITableViewCells dans UITableView
- 26. Identifier les différents téléphones mobiles et rediriger vers différents sites
- 27. Quelle est la meilleure façon de représenter plusieurs booléens dans un modèle django?
- 28. Quelle est la meilleure façon de mapper les urls principaux dans un projet django?
- 29. Quelle est la meilleure façon de formater C# dans WordPress?
- 30. Quelle est la meilleure façon d'utiliser JQuery dans Asp.net
Cela a l'air utile mais cela pose exactement le même problème que j'ai avec ma propre utilisation de plusieurs types d'utilisateurs/profils: les applications existantes ne le savent pas. Ils créent simplement des instances d'utilisateurs, donc cette méthode sympa est complètement ignorée. – ironfroggy
Oui, les modèles d'utilisateurs multiples sont encore un peu problématiques, mais les différents profils basés sur les rôles peuvent être résolus. –