[英]Handle Custom User Model Django-Allauth
我有一个从 Django 的User
扩展的自定义用户模型,我想注册该用户模型,而不是仅注册默认模型。
为此,我根据allauth doc使用ACCOUNT_SIGNUP_FORM_CLASS
设置。
这是我在settings.py 中的内容:
ACCOUNT_SIGNUP_FORM_CLASS = 'myapp.forms.SignupForm'
在myapp/forms.py 中:
class SignupForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
model = MyUser
def signup(self, request, user):
print('test')
user.save()
MyUser(user=user).save()
应该执行signup()
函数:
这个类 [SignupForm] 应该实现一个 def signup(self, request, user) 方法,其中 user 代表新注册的用户。
但它不是( test
未打印)。 仅保存User ,而不保存MyUser 。 我究竟做错了什么?
你在这里混合了两件事:
ACCOUNT_SIGNUP_FORM_CLASS
来告诉all-auth
要使用的自定义注册表单UserCreationForm
这样signup()
方法将永远不会被调用。
如果您查看这一行,您将看到在调用signup()
方法的地方。 因此,如果您想充分利用all-auth
的内置表单,我建议您从all-auth
库继承SignupForm
。
再一次,根据您的方法判断,您可能需要考虑设置AUTH_USER_MODEL=MyUser
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.