Django Allauth:注册表单中的可选字段

Django Allauth:注册表单中的可选字段,django,django-allauth,Django,Django Allauth,我正在使用Django Allauth设置,在我的注册/注册表单中有其他字段。对于必填字段,一切正常,但当我尝试向注册表中添加一些可选字段时,问题就开始了 My settings.py: ACCOUNT_SIGNUP_FORM_CLASS = 'myapp.forms.RegistrationForm' forms.py: class RegistrationForm(forms.ModelForm): category = forms.ChoiceField(choices=CAT

我正在使用Django Allauth设置,在我的注册/注册表单中有其他字段。对于必填字段,一切正常,但当我尝试向注册表中添加一些可选字段时,问题就开始了

My settings.py:

ACCOUNT_SIGNUP_FORM_CLASS = 'myapp.forms.RegistrationForm'
forms.py:

class RegistrationForm(forms.ModelForm):

    category = forms.ChoiceField(choices=CATEGORY_CHOICES)
    password1 = forms.CharField(widget=forms.PasswordInput(), label="Password")
    password2 = forms.CharField(widget=forms.PasswordInput(),
                            label="Password (again)"
                            )
    company = forms.CharField()

    ....
    class Meta:
       model = User
       fields = ('email', 'first_name', 'last_name', )

    def signup(self, request, user):
          category =  self.cleaned_data['category']
          company = self.cleaned_data['company']
          person = UserProfile(user=user, category=category, )
                         company=company,)
          person.save()
models.py:

class UserProfile(models.Model):
...
    user = models.OneToOneField(User, related_name='profile',
                            verbose_name=_('user'))
    company = models.CharField(max_length=100, blank=True, null=True,
                           verbose_name=_('company'))
User.profile = property(lambda u:     UserProfile.objects.get_or_create(user=u)[0]
因此,category字段是必需的,并且是可以的。但是我怎么能把company字段作为可选字段呢

company = forms.CharField(required=False)
有关更多信息,请参阅