追加のフィールドが 1つある djangoカスタム ユーザー モデルがあります。 MyUser
# models.py
from django.contrib.auth.models import AbstractUser
class MyUser(AbstractUser):
age = models.PositiveIntegerField(_("age"))
# settings.py
AUTH_USER_MODEL = "web.MyUser"
これらの指示に従って、カスタムの全認証サインアップ フォーム クラスも用意しています。
# forms.py
class SignupForm(forms.Form):
first_name = forms.CharField(max_length=30)
last_name = forms.CharField(max_length=30)
age = forms.IntegerField(max_value=100)
class Meta:
model = MyUser
def save(self, user):
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.age = self.cleaned_data['age']
user.save()
# settings.py
ACCOUNT_SIGNUP_FORM_CLASS = 'web.forms.SignupForm'
送信後SignupForm
(プロパティのフィールドMyUser.age
が正しくレンダリングされます)、次のエラーが発生します。
/accounts/signup/ の IntegrityError
(1048、「列 'age' を null にすることはできません」)
カスタム ユーザー モデルを保存する適切な方法は何ですか?
ジャンゴ-allauth: 0.12.0; ジャンゴ: 1.5.1; パイソン 2.7.2