传递一个模型实例,而不是djang中的unicode方法

2024-04-26 18:33:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个django表单,它包含一个通过外键的连接。这是一个非常大的表的外键。在表单上,为了防止加载大量select导致浏览器崩溃,我有一个jQuery autocomplete,它在每次击键时发送输入的文本。然后在表中搜索此文本,并返回适当的结果进行显示。当选中一个字符域时,该id被传递给一个隐藏的字符域。这个隐藏的CharField是ForeignKey关系的小部件。当我试图保存表单时,我得到一个错误,我需要为相关模型传递一个模型实例,这是公平的。但是我不知道怎么做。我可以使用这个id并执行model.objects.get(pk=id_from_form),但是如果我用这个结果替换POST数据,我仍然会得到一个错误,因为我只是传递模型的__unicode__方法。我肯定我遗漏了什么,但我看不出来是什么。你知道吗

谢谢。你知道吗


Tags: django模型文本id表单错误浏览器jquery
1条回答
网友
1楼 · 发布于 2024-04-26 18:33:14

与其使用CharField来存储id,不如尝试使用ModelChoiceField,并将小部件设置为HiddenInput。表单中的字段定义如下所示:

mymodel = forms.ModelChoiceField(widget=forms.HiddenInput, queryset=MyModel.objects.all())

相关问题 更多 >