1

J'ai une exigence de deux types de connexion dans mon projet django où une connexion est pour les étudiants et une connexion est pour les enseignants. J'ai parcouru la documentation de Django et d'autres ressources Internet, et j'ai trouvé une solution de conception simple, mais je ne suis pas sûr du pour et du contre car je suis encore silencieux à Django.extension du modèle utilisateur pour créer un modèle user2

Solution Je pensais que pour résoudre ce problème:

1) Pour connexion étudiant, j'ai intégré avec succès django-allauth et il fonctionne très bien.

2) Maintenant, pour la connexion des enseignants, je pense à construire un modèle comme suit:

class Teacher(models.Model): 
    teacher = models.OneToOneField(User,unique=True) 
    identifier = models.CharField(max_length=128) 
    #other fields 

3) Ensuite, deux formes sur ce modèle - Inscription et Connexion pour les enseignants et le formulaire de vérification e-mail: Here I pensé que je vais créer objet enseignant et objet étudiant sur inscription réussie, mais je vais définir is_active=False et demander la vérification de l'email.En cas de vérification réussie, je vais définir is_active=True de sorte qu'un enseignant peut se connecter avec succès. 4) Éviter que les étudiants ne se connectent à la section des enseignants et que les enseignants puissent se connecter dans la section des étudiants: Ici, je cherche un champ d'identifiant pour éviter que les étudiants authentifiés ne se connectent dans la section des enseignants.

S'il vous plaît quelqu'un peut-il m'aider en fournissant votre opinion sur cette solution ou en suggérant une meilleure alternative que je suis toujours en train de lire de plus en plus de documentation Django à ce sujet.

Merci à l'avance!

Répondre

0

Vous pouvez créer un utilisateur 'modèle' unique et y définir des autorisations en les ajoutant à un groupe.

Et d'avoir votre application Django pour les enseignants vérifier s'il y a dans le professeur de groupe. Vous pouvez créer des formulaires séparés ou vérifier par courrier électronique (nom.étudiant @ ou nom @) et avant d'enregistrer le modèle en ajoutant le groupe.

Garder is_active sur False est toujours une bonne idée si vous voulez vérifier qu'un 'utilisateur' a donné un email correct.

0

J'ai fait une application qui nécessitait différents niveaux d'autorisation pour les étudiants, les enseignants et quelques autres catégories d'utilisateurs. Je ne suis pas sûr si c'est la meilleure façon de le faire, mais je l'ai fait en créant un UserProfile, comme Eagllus l'a mentionné, qui avait plusieurs catégories pour quel genre de profil d'utilisateur c'était. Quelque chose comme:

PROFILE_CHOICES = (
    ('TE', 'Teacher'), 
    ('ST', 'Student'), 
) 

class UserProfile(models.Model): 
    user = models.ForeignKey(User) 
    profile_type = models.CharField(max_length=2, choices=PROFILE_CHOICES) 
    '''other attributes''' 

Vous pouvez ensuite décorer vos vues afin que seuls les utilisateurs d'un certain type puissent y accéder. Ce n'est pas clair pour moi ce que vous essayez de faire dans # 3. Il semble que vous souhaitiez que l'utilisateur soit ajouté en tant qu'enseignant et étudiant, mais ne le rende actif que par une vérification par e-mail?

Je ne suis pas familier avec django-auth mais django-registration fournit l'enregistrement de l'utilisateur où les comptes utilisateur sont activés par e-mail. Cela peut vous faire économiser beaucoup de travail.

+0

En fait, j'essaie de vérifier l'inscription par la vérification par courriel au numéro 3. En fait, mon identifiant d'étudiant est en ligne sur les quatre derniers mois avec environ 1500 inscriptions, donc je ne veux pas changer le mécanisme de connexion des étudiants. Cette idée de UserProfile semble bonne.J'enquête plus loin afin que je puisse le faire fonctionner dans mon scénario. Merci!! – gmfreak

Questions connexes