Django ManyToMany Поле в форме - ненужные вызовы базы данных? - PullRequest
0 голосов
/ 19 февраля 2012

В форме django, которая имеет поле manyToMany - есть ли вызов базы данных для извлечения каждого объекта в списке при добавлении новой записи? Это необходимо / расточительно?

Например:

класс MyForm (ModelForm): likes = forms.ModelMultipleChoiceField (queryset = Videos.objects.all ())

....

форма отправлена ​​со списком идентификаторов проекта. в методе clean () лайки становятся списком объектов Video. Однако вы можете сделать:

self.instance.likes.add () ... без необходимости получать объекты.

...

расточительно ли, что объекты сначала извлекаются перед обновлением отношения? если нет, то почему?

1 Ответ

0 голосов
/ 20 февраля 2012

Я бы сказал, что каждый раз, когда вы сохраняете форму, она будет оценивать набор запросов, который вы ей передали, чтобы убедиться, что каждый идентификатор находится в этом наборе запросов.если вы хотите оптимизировать поведение, попробуйте создать подкласс ModelMultipleChoiceField и удалить проверки / сделать их более упорядоченными.

...