Python 单刀场误差
我正在处理一个用户注册表单,该表单由两个Django表单组成,即CustomUserForm和CompanyProfileForm(即ModelForm)。这些表单通过位于CompanyProfile模型中的OneToOneField连接,如下面的代码所示Python 单刀场误差,python,django,Python,Django,我正在处理一个用户注册表单,该表单由两个Django表单组成,即CustomUserForm和CompanyProfileForm(即ModelForm)。这些表单通过位于CompanyProfile模型中的OneToOneField连接,如下面的代码所示 class CompanyProfile(models.Model): user=models.OneToOneField(用户,on_delete=models.CASCADE,主键=True) companyName=models.Ch
class CompanyProfile(models.Model):
user=models.OneToOneField(用户,on_delete=models.CASCADE,主键=True)
companyName=models.CharField(最大长度=200,空白=False)
companyRegNum=models.CharField(max_length=30,blank=True)
这样做怎么样
if request.method == 'POST':
userRegForm = CustomUserForm(request.POST)
companyForm = CompanyProfileForm(request.POST)
print(companyForm)
if userRegForm.is_valid():
user = userRegForm.save()
else:
#take user to somewhere to fix this
pass
companyForm.user = user
if companyForm.is_valid():
compProfile = companyForm.save(commit=False)
if compProfile.user_id is None:
compProfile.user_id = user.id
compProfile.save()
return HttpResponseRedirect('/user_account/dashboard')
else:
#You might want to delete user if things dont go well.
return HttpResponseRedirect(request.path)
您应该从CompanyProfileForm中排除用户字段。您已经将其设置为“保存”,因此它根本不需要在表单中
class CompanyProfileForm(ModelForm):
class Meta:
model = CompanyProfile
exclude = ('user',)