我有一个包含通过外键加入的django表单。这是一个非常大的表的外键。在表单上,为了防止加载一个容易导致浏览器崩溃的大量选择,我有一个jQuery自动完成,在每次击键时都会发送输入的文本。然后在表格中搜索该文本并返回合适的结果以显示。然后,在选择一个时,将id传递给隐藏的CharField。这个隐藏的CharField是ForeignKey关系的小部件。当我尝试保存表单时,我得到一个错误,我需要传递相关模型的模型实例,这是公平的。然而,我无法弄清楚如何做到这一点。我可以使用该id并执行model.objects.get(pk=id_from_form)
,但是如果我用结果替换POST数据,我仍然会收到错误,因为我只是传递了模型的__unicode__
方法。我确定有一些我不知道的东西,但我看不出它是什么。
感谢。
答案 0 :(得分:1)
尝试使用CharField
并将窗口小部件设置为ModelChoiceField
,而不是使用HiddenInput
来存储ID。表单中的字段定义类似于:
mymodel = forms.ModelChoiceField(widget=forms.HiddenInput, queryset=MyModel.objects.all())