Как получить все значения для определенного поля в django ORM? - PullRequest
0 голосов
/ 19 марта 2019

У меня есть таблица с именем user_info. Я хочу получить имена всех пользователей. Таким образом, в таблице есть поле с именем name. Так что в SQL я делаю что-то вроде

SELECT distinct(name) from user_info

Но я не могу понять, как сделать то же самое в Django. Обычно, если у меня уже есть определенное значение, то я могу сделать что-то вроде ниже.

user_info.objects.filter(name='Alex')

А затем получите информацию для этого конкретного пользователя.

Но в данном случае для данной таблицы я хочу получить все значения имени, используя django ORM, как я это делаю в sql.

Вот моя модель Джанго

class user_info(models.Model):
    name = models.CharField(max_length=255)
    priority = models.CharField(max_length=1)
    org = models.CharField(max_length=20)

Как я могу сделать это в Django?

Ответы [ 2 ]

2 голосов
/ 19 марта 2019

Вы можете использовать values_list.

user_info.objects.values_list('name', flat=True).distinct()

Обратите внимание, что в Python классы обычно определяются в InitialCaps: ваша модель должна быть UserInfo.

1 голос
/ 19 марта 2019

Вы можете использовать values_list(), как указано в ответе Даниэля, который предоставит вам ваши данные в списке, содержащем значения в поле.Или вы также можете использовать, values(), например:

user_info.object.values('name')

, который вернет вам набор запросов, содержащий словарь.values_list() и values() используются для выбора столбцов в таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...