我在一个项目中工作,模型似乎工作得很好,直到我在模型中添加了一个反馈字段。无法访问UserProfile表中的数据并返回上述错误
型号.py
Roles = (
('sales', 'SALES'),
('operations', 'OPERATIONS'),
('cashier', 'CASHIER'),
('frontdesk', 'FRONTDESK'),
('client', 'CLIENT'),
()
class UserProfile(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE, default=None, null=True)
role = models.CharField(max_length=50, choices=Roles, default='client')
feedback = models.TextField(default=None, null=True)
def __str__(self):
return self.user.username
查看以获取反馈:
@login_required
def feedback(request):
form = FeedbackForm()
if request.method =='POST':
form = FeedbackForm(request.POST)
if form.is_valid():
form = FeedbackForm.save()
return render(request, 'NewApp/feedback.html',{'form':form})
表单.py
class UserForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput())
confirm_password = forms.CharField(widget=forms.PasswordInput())
class Meta():
model = User
fields = ('first_name','last_name','username','email','password')
def clean(self):
cleaned_data = super(UserForm, self).clean()
password = cleaned_data.get("password")
confirm_password = cleaned_data.get("confirm_password")
if password != confirm_password:
raise forms.ValidationError(
"password and confirm_password does not match"
)
class UserProfileInfoForm(forms.ModelForm):
class Meta():
model = UserProfile
fields = ('role',)
class FeedbackForm(forms.ModelForm):
class Meta():
model = UserProfile
fields = ('feedback',)
UserProfile模型上的用户在数据库上可以为空
方法str是使用这个用户打印用户名
您需要检查用户是否为无:
相关问题 更多 >
编程相关推荐