【发布时间】:2017-10-28 01:20:38
【问题描述】:
我正在尝试保存具有一对一字段的表单。
但是它不断收到错误“account_id”列中的空值违反了非空约束。
不知道为什么我无法将新帐户对象保存在一对一字段中。
型号
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']
【问题讨论】:
-
账户对象在这一点上有pk吗?你可以打印account.pk并在分配前得到结果吗?您的数据库引擎可能会在事务方面表现得很有趣。
-
account = Account.objects.create(bank_name='xxx')你可以试试这个 -
请发布错误的完整堆栈跟踪。
标签: django one-to-one