web-dev-qa-db-fra.com

Utilisation des rôles utilisateur dans Django

J'ai une question Dans un projet, j'ai besoin de travailler avec des utilisateurs qui sont de trois types (peut-être plus) de rôles différents: médecin administrateur de patients

J'ai pensé à utiliser le Django Model Users et à l'étendre en créant un modèle userprofile ... Mais j'ignore comment gérer les différents rôles car, le modèle userprofile aura des champs du modèle utilisateur , même si je ne sais pas comment aborder le sujet des rôles.

1 Utilisateur possède De nombreux profils d'utilisateurs peuvent l'être? Je ne sais pas

Ou peut-être que je devrai créer un modèle/table de rôles dans lequel je spécifierai les types de rôles et créerai une relation avec le modèle d'utilisateurs. C'est une bonne possibilité.

Une autre possibilité (comme un commentaire plus ci-dessous) est de vérifier le système d'autorisations Django, dans lequel je peux créer des groupes d'utilisateurs et attribuer des autorisations à ces groupes, bien que je ne puisse que modifier, créer et supprimer modèles vraiment?

Je suis un peu confus sur la façon d'aborder ce sujet

Recherche J'ai trouvé cette application. https://github.com/dabapps/Django-user-roles

Si quelqu'un peut m'orienter à ce sujet, je vous en serai très reconnaissant.

17
bgarcial

Vous pourriez probablement faire fonctionner cela avec Django intégré autorisations

C'est peut-être plus que ce dont vous avez besoin. Une solution simple serait simplement un modèle UserProfile avec un champ de rôle avec un OneToOneField pour votre utilisateur:

class UserProfile(models.Model):
  user = models.OneToOneField(User, related_name="profile")
  role = models.CharField()

Définissez les rôles et effectuez des vérifications avec les rôles dans vos vues:

user.profile.role = "physician"
user.profile.save()

if user.profile.role == "physician":
  #do physician case here
19
sponrad