Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Manytoman字段在表单中-不必要的数据库调用?_Django_Django Models_Django Forms_Django Orm - Fatal编程技术网

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

Django Manytoman字段在表单中-不必要的数据库调用?,django,django-models,django-forms,django-orm,Django,Django Models,Django Forms,Django Orm,在具有多个字段的django表单中,添加新条目时是否有数据库调用来检索列表中的每个对象?这有必要/浪费吗 例如: 类MyForm(ModelForm): likes=forms.modelmultipechoicefield(queryset=Videos.objects.all()) 该表单随项目id列表一起提交。在clean()方法中,like成为视频对象的列表。但是,您可以执行以下操作: self.instance.likes.add()…而无需获取对象 在更新关系之前先检索对象是否浪

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

例如:

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

该表单随项目id列表一起提交。在clean()方法中,like成为视频对象的列表。但是,您可以执行以下操作:

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


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

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