J'ai récemment commencé à apprendre / utiliser Django; J'essaie de trouver un moyen d'avoir deux systèmes d'authentification distincts pour les administrateurs et les utilisateurs. Plutôt que de créer un tout nouveau système d'authentification, j'aimerais tirer parti de la fonctionnalité intégrée de Django (c'est-à-dire la gestion de la session, @Login_Required décorateur, etc.). p>
Spécifiquement, je veux avoir Quelqu'un a des suggestions sur la manière dont je peux atteindre mon objectif ou savoir de tout article / exemples qui pourraient m'aider? P> ID, nom d'utilisateur, email, is_staff, etc. code>). La table des utilisateurs, d'autre part, je veux avoir 5 champs fort> -
ID, e-mail, mot de passe, nom, last_name code>. En outre, je souhaite utiliser la gestion de session intégrée Django pour les tables de connexion et le décorateur @Login_Required pour leurs vues respectives. Enfin, je veux deux formulaires de connexion distincts et distincts pour les administrateurs et les utilisateurs. p>
3 Réponses :
Modifier les choses légèrement afin que les utilisateurs aient un préfixe de catégorie sur leur nom d'utilisateur? Vous n'avez pas beaucoup fourni des informations sur ce que vous voulez faire, il est possible que vos besoins puissent être satisfaits en utilisant le cadre de sites, ou simplement deux installations Django distinctes. P>
Si ce que vous essayez de faire est de faire la page de connexion de l'utilisateur et de la page de connexion de l'administrateur, utilisez simplement le cadre intégré comme détaillé dans les documents pour créer une page de connexion "utilisateur" et laisser l'administrateur seul. Si vous craignez que les utilisateurs commencent d'une manière ou d'une autre, commencent à éditer des trucs de connexion à l'administrateur, ils ne seraient pas à moins que vous ne les laissez. p>
Vous pouvez potentiellement écrire un ou plusieurs backens d'authentification personnalisés. Ceci est documenté ici . J'ai écrit un backend personnalisé pour vous authentifier contre un serveur LDAP, par exemple. P>
Si je comprends votre question correctement (et peut-être que je ne le fais pas), je pense que vous demandez comment créer un formulaire de connexion séparé pour les utilisateurs non administratifs, tout en utilisant toujours les mécanismes d'authentification Django standard, Vous voulez commencer par utilisateur Code> Modèle, etc. Ceci est pris en charge de manière nativement par Django via des vues dans
django.contrib.auth.views code>.
django.contrib.auth.views .login code>. Ajoutez une ligne à votre URLCONF comme SO: P>
(r'^/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'})
Ne sont-ils pas les autorisations déjà suffisantes pour la plupart des tâches? Les administrateurs ne sont que des utilisateurs avec des autorisations appropriées. Et il y a même
user.is_staff code> /
user.is_superuser code> si vous ne voulez pas d'autorisations à réglage précis.
Il semble que ma question n'était pas claire; J'ai modifié ma question en ajoutant plus de détails et de détails, espérons-le plus clairement plus clair. Merci pour l'aperçu / l'aide.