我正在尝试保存具有一对一字段的表单。
然而,它在“account_id”列中不断收到错误 null值违反了非空约束。
不确定为什么我无法在一对一字段中保存新帐户对象。
模型
class Account(models.Model):
name = models.CharField(max_length=30)
class Bank(models.Model):
account = models.OneToOneField(Account, on_delete=models.CASCADE, primary_key=True)
bank_name = models.CharField(max_length=30)
查看
def add_bank_view(request):
if request.method == 'POST':
form = BankForm(request.POST)
if form.is_valid():
account = Account.objects.create(name='xxx')
bankform = form.save(commit=False)
bankform.account = account
bankform.save()
return HttpResponseRedirect('/add_banks/')
else:
form = BankForm()
return render(request, 'bank/add_bank.html', {'form': form})
表格
class BankForm(forms.ModelForm):
class Meta:
model = Bank
fields = ['bank_name']
答案 0 :(得分:0)
感谢大家的帮助。
我发现如果尚未设置“帐户”字段,则在“一对一”字段的情况下无法使用ModelForm。解决方案是使用基本表单,然后使用基本表单中的数据在您的视图中设置帐户和银行记录。