Встречается на собеседованиях • сегодня
Как ограничить количество полей в queryset
Для ограничения количества полей в QuerySet можно использовать методы values() или only().
1. values() – возвращает словари вместо объектов модели, выбирая только указанные поля:
python
queryset = MyModel.objects.values('id', 'name') # Только id и name2. only() – загружает указанные поля, остальные подгружаются лениво при обращении:
python
queryset = MyModel.objects.only('id', 'name') 3. defer() – исключает указанные поля (противоположность only()):
python
queryset = MyModel.objects.defer('description') # Все поля, кроме descriptionВажно:
values()уменьшает объем данных, но возвращает словари.only()иdefer()работают с объектами модели, но могут вызвать дополнительные запросы при обращении к отложенным полям.
Пример с only():
python
users = User.objects.only('username', 'email')
for user in users:
print(user.username) # Загружено сразу
print(user.last_login) # Дополнительный запрос к БД 
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы