Django самый быстрый способ сделать Query получить список элементов в строке из таблицы - PullRequest
0 голосов
/ 14 апреля 2020

В моем приложении мне нужно сделать быстрый запрос, но я не знаю, что быстрее

materials = Material.objects.only('name')

Или отфильтровать это в виде

materials = Material.objects.all()

И затем использовать для l oop чтобы показать список элементов из строки 'name'

Я думаю, что сначала лучше или есть лучший способ сделать это? Это невозможно сделать с помощью filter (), так как нужно показать все поля в этой строке.

1 Ответ

1 голос
/ 14 апреля 2020

Если вам нужны только name s, вы можете использовать .values_list(..):

materials = list(Material.objects<b>.values_list('name', flat=True)</b>)

Это позволит избежать переноса записей в Material объектов. При этом, если некоторые столбцы не содержат (очень) большие объемы данных, использование .only(..) не значительно ускорит процесс. Кроме того, с точки зрения дизайна программного обеспечения часто лучше выбрать Material объекты, поскольку это означает, что вы можете определить поведение в вашей Material модели.

...