在我的应用中,我使用标准的auth模块和social auth插件。 我想检测用户是否通过oauth或标准方法注册
我已将功能注册到post_save信号:
def create_user_profile(sender, instance, created, **kwargs):
if created:
key, expires = UserProfile.generate_activation_data()
return UserProfile.objects.create(user=instance, activation_key=key, key_expires=expires)
post_save.connect(create_user_profile, sender=User)
但是当用户通过oauth注册时我会避免创建激活数据,而是设置一些字段表示用户是由oauth注册的。
有人可以给我任何建议吗?
答案 0 :(得分:1)
添加一个pipeline method,在用户实例中设置一个标志,如下所示:
def created_by_social_auth(user, *args, **kwargs):
user.by_social_auth = True
此外,您可以检查用户是否有任何UserSocialAuth
实例与之关联:
user.social_auth.count()