Ответ 1
QuerySet.only()
и QuerySet.defer()
может быть используется для уточнения тех полей, которые ORM будет тянуть, откладывая остальные до тех пор, пока не будут доступны соответствующие атрибуты на моделях.
Я видел такие запросы, как:
user = User.objects.all() or User.objects.filter(username = username)
будет извлекать все столбцы таблицы, даже если нам не нужны все столбцы. У нас есть лучший способ написать запрос к базе данных? и если да, то почему мы не видим этот код чаще всего?
QuerySet.only()
и QuerySet.defer()
может быть используется для уточнения тех полей, которые ORM будет тянуть, откладывая остальные до тех пор, пока не будут доступны соответствующие атрибуты на моделях.
С django 1.8: используйте значение_list
Entry.objects.values_list('id', 'headline')
если вам нужны только значения в качестве словаря, используйте objects.values (''). Его также быстрее.
см. документы: http://docs.djangoproject.com/en/dev/ref/models/querysets/#values-fields