Только django prefetch_related id - программирование
Подтвердить что ты не робот

Только django prefetch_related id

Я пытаюсь оптимизировать свои запросы, но prefetch_related настаивает на присоединении к таблицам и выборе всех полей, хотя мне нужен только список идентификаторов из таблицы отношений.

queries

Вы можете игнорировать четвертый запрос. Это не связано с вопросом.

Связанный код:

class Contact(models.Model):
    ...
    Groups = models.ManyToManyField(ContactGroup, related_name='contacts')
    ...

queryset = Contact.objects.all().prefetch_related('Groups')
4b9b3361

Ответ 1

Django 1.7 добавил Объекты предварительной выборки, которые позволяют настраивать набор запросов, используемый при предварительной выборке. В этом случае вам нужно что-то вроде:

queryset = Contact.objects.all().prefetch_related(
    Prefetch('Groups', queryset=Group.objects.all().only('id')))