在纯 Django 中,我会这样做:
from django.contrib.auth.models import User
user = User.objects.create_user(username=email, email=email)
但是 django allauth 带有这个
EmailAdress
东西。我是否也只需要创建其中之一,然后我就没事了?from allauth.account.models import EmailAddress
EmailAddress.objects.create(user=user, email=email, primary=True, verified=False)
我不想破坏一些 django allauth 逻辑和 existing adapter methods不适合我的需要。
编辑 : 替换
setup_user_email
与 EmailAddress
编辑2 : 替换
add_email
与 create
, 想设置primary=True
最佳答案
创建用户的规范方法似乎卡在 SignupForm.save()
中。方法:
https://github.com/pennersr/django-allauth/blob/6b2167ca245558317be1f8881f162f4d5312eb95/allauth/account/forms.py#L401-L408
编辑:它实际上比 SignupView
高一级,它首先调用 SignupForm.save()
然后调用account.utils.complete_signup()
,发送 user_signed_up
信号:
https://github.com/pennersr/django-allauth/blob/6b2167ca245558317be1f8881f162f4d5312eb95/allauth/account/views.py#L227-L237
https://github.com/pennersr/django-allauth/blob/6b2167ca245558317be1f8881f162f4d5312eb95/allauth/account/utils.py#L171-L183
关于django - 如何使用 django allauth 创建合适的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29147550/