表单中的Django ManyToMany字段 - 不必要的数据库调用?

时间:2012-02-19 03:48:31

标签: django django-models django-forms django-orm

在具有manyToMany字段的django表单中 - 当您添加新条目时,是否有数据库调用来检索列表中的每个对象?这有必要/浪费吗?

例如:

类MyForm(ModelForm):     likes = forms.ModelMultipleChoiceField(queryset = Videos.objects.all())

...

表单随项目ID列表一起提交。在clean()方法中,like会成为Video对象的列表。但是你可以这样做:

self.instance.likes.add()...无需获取对象。

...

在更新关系之前首先检索对象是否浪费?如果没有,为什么?

1 个答案:

答案 0 :(得分:0)

我会说,每次保存表单时,它都会评估您传递的查询集,以检查每个ID是否在该查询集中。如果您希望优化行为,请尝试继承ModelMultipleChoiceField并删除检查/使其更加简化。