Je suis nouveau dans l'environnement de développement de Django. S'il vous plaît aidez-moi dans la mise en œuvre de scénarios comme suit dans l'application Django.Django: Comment identifier par quel utilisateur de lien a fait l'authentification sociale?
Dans ma page web, il y a des liens disponibles pour faire un login/login social en utilisant le module python-social-auth (pour facebook et google). Il y a deux types d'utilisateurs dans mon système, TypeA et TypeB.
Dans la page Web il y aura différents liens pour chacun de type (comme TypeA-Facebook-Login, TypeB-Facebook-Login).
Lorsque jamais un utilisateur est créé par le service python-auth-social, une entrée User
est ajoutée en utilisant django.dispatch.receiver
Je veux faire l'entrée à la table TypeAUser
ou TypeBUser
.
* Alors, comment puis-je comprendre par quel lien l'utilisateur est inscrit?
J'ai essayé de suivre avec un paramètre supplémentaire dans les liens d'authentification sociale, mais comment puis-je accéder à cette information plus tard?
<a href="{% url 'social:begin' 'facebook' %}?next={{request.path}}&profile_type=typea">
Login with faceboook</a>
Voici comment j'ai écrit la fonction @reciver.
@receiver(post_save, sender=User,dispatch_uid="add_user_profile")
def add_user_profile(sender,instance, **kwargs):
Beaucoup de mercis, pour les suggestions et les entrées.
Comment avez-vous mis en place 'contrib.auth' avec deux versions de modèles d'utilisateur ? – khajvah
@khajvah: Je n'ai pas modifié ** contrib.auth module **, juste ajouté de nouveaux modèles comme 'TypeAUser' et' TypeBUser', qui a 'models.OneToOneField ('auth.User', primary_key = True)' un champ d'utilisateur. – Dipak
Je ne pense pas, c'est une bonne solution. Je vous suggère de créer une nouvelle table 'UserTypes', puis d'ajouter une nouvelle clé étrangère de' auth.User' à cette nouvelle table. – khajvah