请不要浪费你的时间阅读这个问题......这是错误的做法!
请查看我自己的答案,了解正确解决方案的分步指南(解释)
如何使用django-allauth为私人和公司用户实施注册?
我有以下内容models
:
class PrivateUser(models.Model):
"""Models a private user account"""
user = models.OneToOneField(User, on_delete=models.CASCADE)
class CompanyUser(models.Model):
"""Models the company's contact person user account"""
user = models.OneToOneField(User, on_delete=models.CASCADE)
class Company(models.Model):
"""Models the company attributes"""
contact_person = models.OneToOneField(User, related_name='company')
name = models.CharField(max_length=50, null=False, blank=False)
vat_no = models.CharField(
# some config and validators
)
# ... other non-relevant fields
Run Code Online (Sandbox Code Playgroud)
现在,我必须区分这两个用户,PrivateUser
并CompanyUser
在注册过程中使用django-allauth只有一个注册表单,如官方django-allauth文档中所指定的:
ACCOUNT_SIGNUP_FORM_CLASS(=无)
指向自定义表单类(例如
myapp.forms.SignupForm
)的字符串,用于在注册期间向用户请求其他输入(例如,简报注册,出生日期).此类应实现一种def signup(self, request, user)
方法,其中用户表示新注册的用户.
因此,创造一个独特的形式,我创建了一个抽象的模型类与来自各个领域 …