Python Django自定义用户字段的默认值未添加到db表中
我正在使用Python Django自定义用户字段的默认值未添加到db表中,python,django,python-3.x,django-models,django-forms,Python,Django,Python 3.x,Django Models,Django Forms,我正在使用Python93.7&Django(2.2)开发一个项目,在这个项目中,我扩展了用户模型,为用户添加了一个自定义字段。我已经在模型中为该字段定义了一个默认值,但是当我在表单中将其保留为空时,默认值不会添加到数据库中 这是我的模型: 来自models.py: class CustomUser(User): team = models.CharField(max_length=255, default='NotInGroup', blank=True) if form.is_va
Python93.7
&Django(2.2)
开发一个项目,在这个项目中,我扩展了用户模型,为用户添加了一个自定义字段。我已经在模型中为该字段定义了一个默认值,但是当我在表单中将其保留为空时,默认值不会添加到数据库中
这是我的模型:
来自models.py
:
class CustomUser(User):
team = models.CharField(max_length=255, default='NotInGroup', blank=True)
if form.is_valid():
print('form is valid')
print(form.cleaned_data['team'])
if not form.cleaned_data['team'] == '':
form.team = form.cleaned_data['team']
else:
form.team = 'Default'
print(form.team)
user = form.save()
class CustomUserCreationForm(UserCreationForm):
class Meta(UserCreationForm):
model = CustomUser
fields = ('first_name', 'last_name', 'email', 'username', 'team', 'password1', 'password2')
以下是我的看法:
来自视图.py
:
class CustomUser(User):
team = models.CharField(max_length=255, default='NotInGroup', blank=True)
if form.is_valid():
print('form is valid')
print(form.cleaned_data['team'])
if not form.cleaned_data['team'] == '':
form.team = form.cleaned_data['team']
else:
form.team = 'Default'
print(form.team)
user = form.save()
class CustomUserCreationForm(UserCreationForm):
class Meta(UserCreationForm):
model = CustomUser
fields = ('first_name', 'last_name', 'email', 'username', 'team', 'password1', 'password2')
如果我为form.team
将其留空,它将打印出默认值
,但不会保存在DB中。
这是我的表格:
来自forms.py
:
class CustomUser(User):
team = models.CharField(max_length=255, default='NotInGroup', blank=True)
if form.is_valid():
print('form is valid')
print(form.cleaned_data['team'])
if not form.cleaned_data['team'] == '':
form.team = form.cleaned_data['team']
else:
form.team = 'Default'
print(form.team)
user = form.save()
class CustomUserCreationForm(UserCreationForm):
class Meta(UserCreationForm):
model = CustomUser
fields = ('first_name', 'last_name', 'email', 'username', 'team', 'password1', 'password2')
要扩展
用户
模型,必须使用抽象用户
类,即:
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
team = models.CharField(max_length=255, default='NotInGroup', blank=True)
现在在settings.py
添加AUTH\u USER\u MODEL
:
AUTH_USER_MODEL = 'myapp.CustomUser'
无法迁移此更改,
django.core.exceptions.FieldError:在类“CustomUser”中自动生成字段“user\u ptr”