【发布时间】:2018-10-28 01:50:59
【问题描述】:
我正在尝试在一个模板中提交两个表单。一个模型键是另一个模型的外键。 POST 完成后将设置外键。
class CustomerSystem(models.Model):
---Some fields---
class MN(models.Model):
--some fields--
customer_system_serial_number = models.ForeignKey(CustomerSystem, on_delete= models.CASCADE)
这就是我的 models.py 的样子
模板文件是带有“form”变量的标准模板
在 forms.py 中,我已经从 MN 模型中排除了 customer_system_serial_number。
这就是我在视图中尝试的内容
@login_required
def add_customers(request):
if request.method == 'POST':
form_cs = CustomerSystemForm(request.POST, prefix='cs')
form_mn = MNForm(request.POST, prefix='mn')
if form_cs.is_valid() and form_mn.is_valid():
model_instance = form_cs.save(commit=False)
model_instance.save()
print(model_instance)
form_mn.customer_system_serial_number = model_instance
form_mn.save()
return HttpResponseRedirect('/database/customers')
else:
form_cs = CustomerSystemForm(request.POST, prefix='cs')
form_mn = MNForm(request.POST, prefix='mn')
return render(request, 'database/customer_system.html', {'form_cs': form_cs, 'form_mn': form_mn})
我得到的错误是非完整性错误/非空错误。我可以看到 model_instance 正在保存,因为它打印了一个有效的对象。我正在尝试做类似how to set foreign key during form completion (python/django) 的事情,但是我显然遗漏了一些可能非常基本的东西。任何帮助表示赞赏
【问题讨论】: