2012-02-19 4 views
0

manyToMany 필드가있는 장고 양식에서 - 새 항목을 추가 할 때 목록의 각 개체를 검색하는 데이터베이스 호출이 있습니까? 필요한/낭비입니까?Django ManyToMany 형식의 필드 - 불필요한 데이터베이스 호출?

클래스에 MyForm (ModelForm) : 예를 들어

좋아 = forms.ModelMultipleChoiceField (검색어 세트 Videos.objects.all =()) 양식이 제출

....

프로젝트 ID 목록으로 clean() 메서드 내에서 likes는 Video 객체의 목록이됩니다. 그러나 할 수있는 일 :

self.instance.likes.add() ... 객체를 가져올 필요가 없습니다.

...

IT는 개체의 관계를 업데이트하기 전에 먼저 검색되는 것을 낭비? 그렇지 않다면, 왜?

답변

0

폼을 저장할 때마다 각 쿼리 ID가 해당 쿼리 집합에 속하는지 확인하기 위해 통과 한 쿼리 세트를 평가할 것입니다. 비헤이비어를 최적화하려면 ModelMultipleChoiceField의 서브 클래 싱을 수행하고 체크를 제거하거나보다 간소화하십시오.