用户名和;电子邮件和性与健康;年及;每月及;可以在我的应用程序中注册日期。我在views.py中编写
def regist_save(request):
regist_form = RegisterForm(request.POST or None)
profile_form = ProfileForm(request.POST or None)
context = {
'regist_form': regist_form,
'profile_form': profile_form,
}
if request.method == "POST" and regist_form.is_valid() and profile_form.is_valid():
try:
username = regist_form.cleaned_data.get('username', None)
email = regist_form.cleaned_data.get('email', None)
user = User.objects.get(Q(username=username) | Q(email=email))
messages.warning(request, 'That detailed use is already available.')
return render(request, 'registration/regist.html', context)
except User.DoesNotExist:
regist = regist_form.save(commit=False)
regist.is_staff = True
regist.save()
profile = profile_form.save(commit=False)
profile.user = regist
sex = request.POST.get("sex", "")
profile.sex = sex
profile.save()
return render(request, 'registration/detail.html')
else:
print(regist_form.errors)
print(profile_form.errors)
return render(request, 'registration/regist.html', context)
在forms.py中
class ProfileForm(forms.ModelForm):
class Meta:
model = NewUser
fields = (
"sex"
)
在models.py中
class NewUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
sex = models.CharField(max_length=100,null=True, blank=True, default=None)
当我选择性别时,写下用户名&;通过电子邮件和浏览器中的“放置注册表”按钮,这些数据被注册。但是,现在如果我不选择“性别”,数据被注册。我想让一个系统强制放置性别数据,但当前的系统不同。我的代码中有什么错误?为什么profile\u form.views.py中的profile\u valid()有效?我应该如何解决这个问题
通过在中指定
blank=True
您告诉Django,
sex
字段在表单中是可选的。试着把它去掉相关问题 更多 >
编程相关推荐