django从表单中存储多个字段,它表示该字段不能为空

时间:2013-09-28 17:09:14

标签: python django

我的模板中嵌入了modelform_factory表单,其中包含一个带有外键的字段,它是一个多字段小部件,当我点击它时,它向我展示了所有可用的选项,但具有相同的名称'(如'modelname_object',i猜测那是因为我没有设置他们的unicode名称)。在我发布表单后,dict在该字段中的值如[u'/ 1]或有时[u'/ 2],具体取决于我选择的内容。然后当我存储错误出现时

  

(1048,“列'class_room_id'不能为空”)   请求方法:POST

异常类型:完整性错误

这是代码

def test(request):
    studentFormSet = modelform_factory(Student, fields=("class_room",))
    return render(request,'form.html',{'studentForm': studentFormSet})

if request.POST:
    name = request.POST['student name']
    standard = request.POST['class_room']
    roll_no = request.POST['roll no.']
    shatra = Student()
    shatra.name = name
    shatra.standard = Class_room.objects.all().filter(pk=standard)
    shatra.roll_no = roll_no
    shatra.save()

1 个答案:

答案 0 :(得分:0)

从错误消息中我会推断出您的Student模型有class_room ForeignKey。但是,在创建shatra时,不要设置shatra.class_room的值,因此会出错。

无论如何,您应该阅读有关django表单和django模型的文档。你没有以正确的方式使用它们......