Я изо всех сил пытаюсь разобраться с ORM Django. То, что я хочу сделать, это получить список уникальных значений в поле на моем столе .... эквивалент одной из следующих причин:Выберите отдельные значения из поля таблицы
SELECT DISTINCT myfieldname FROM mytable
(или альтернативно)
SELECT myfieldname FROM mytable GROUP BY myfieldname
Я d, по крайней мере, нравится делать это Django, прежде чем прибегать к raw sql. Например, с таблицей:
ид, улица, город
1, Main Street, Hull
2 Other Street, Hull
3 Биббл Way, Leicester
4, Другой способ, Лестер
5, High Street, Londidium
Я хотел бы получить:
Hull, Лестер, Londidium.
Фактически, что работает. Однако! Я не мог заставить его работать на всех моих моделях. Вряд ли он работал над некоторыми, но не с другими. Для тех, у кого есть мета-заказ, это не работает. Итак, сначала нужно очистить заказ в наборе запросов. models.Shop.objects.order_by(). Values ('city'). Distinct() – alj
Важно отметить, что 'values_list' фактически не возвращает список. Он возвращает что-то вроде набора запросов.Мне было полезно всегда использовать list() для вызовов values_list. – dheerosaur
'values_list' возвращает ValuesListQuerySet, который является итератором. Кастинг в список может быть удобным, но также может поражать производительность, когда все строки должны оцениваться сразу, особенно с большими наборами данных. –