如何将自定义字段添加到扩展 AbstractUser 的模型中
How do I add custom field in to model that extends AbstractUser
我正在尝试创建自己的名为 Customer 的用户 class,它扩展了 AbstractUser 模型并有一个名为地址的附加字段。当我注册时,我看到用户已在 Django 管理中创建,所有字段(用户名、名字、姓氏和电子邮件)都显示在 Django 管理屏幕中,但我在“地址”字段中看不到任何值。我如何知道地址是否被保存以及如何在管理站点中显示它?
下面是我的 models.py
代码
class Customer(AbstractUser):
username = models.CharField(unique=True, max_length=20)
deladdress = models.CharField(max_length=100)
views.py
def signupPage(request):
signForm = CreateCustomer()
if request.method=='POST':
signForm = CreateCustomer(request.POST)
if signForm.is_valid():
signForm.save()
return render(request, 'trial_app/signup.html', {'signForm':signForm})
forms.py
class CreateCustomer(UserCreationForm):
address = forms.CharField(widget=forms.Textarea)
class Meta:
model = Customer
fields = ['username','first_name','last_name','email','address','password1','password2']
def save(self, commit=True):
user = super(CreateCustomer, self).save(commit=False)
user.address = self.cleaned_data["address"]
if commit:
user.save()
return user
这里有一些图片是我的 html 表单的输入和管理站点中的值
似乎当您在其 save
方法中保存表单时,您使用
user.address = self.cleaned_data["address"]
,然而,Customer
模型没有 address
字段,它有 deladdress
,所以尝试重命名一个字段,或者在你的 [=] 中使用 user.deladdress
10=] CreateCustomer
形式的方法。
我正在尝试创建自己的名为 Customer 的用户 class,它扩展了 AbstractUser 模型并有一个名为地址的附加字段。当我注册时,我看到用户已在 Django 管理中创建,所有字段(用户名、名字、姓氏和电子邮件)都显示在 Django 管理屏幕中,但我在“地址”字段中看不到任何值。我如何知道地址是否被保存以及如何在管理站点中显示它?
下面是我的 models.py
代码class Customer(AbstractUser):
username = models.CharField(unique=True, max_length=20)
deladdress = models.CharField(max_length=100)
views.py
def signupPage(request):
signForm = CreateCustomer()
if request.method=='POST':
signForm = CreateCustomer(request.POST)
if signForm.is_valid():
signForm.save()
return render(request, 'trial_app/signup.html', {'signForm':signForm})
forms.py
class CreateCustomer(UserCreationForm):
address = forms.CharField(widget=forms.Textarea)
class Meta:
model = Customer
fields = ['username','first_name','last_name','email','address','password1','password2']
def save(self, commit=True):
user = super(CreateCustomer, self).save(commit=False)
user.address = self.cleaned_data["address"]
if commit:
user.save()
return user
这里有一些图片是我的 html 表单的输入和管理站点中的值
似乎当您在其 save
方法中保存表单时,您使用
user.address = self.cleaned_data["address"]
,然而,Customer
模型没有 address
字段,它有 deladdress
,所以尝试重命名一个字段,或者在你的 [=] 中使用 user.deladdress
10=] CreateCustomer
形式的方法。