Как получить значения полей в виде словаря - PullRequest
0 голосов
/ 14 апреля 2020

Я создал модель Role, как показано ниже.

class Role(models.Model):
    role_name = models.CharField(max_length=255, unique=True, blank=False)

Я пытаюсь получить role_name записи, которая имеет primary_key=2. Итак, пока я пытался сделать это так -

Role.objects.get(pk=2)

Но проблема в том, что он возвращает id экземпляра, т.е. 2, который не имеет смысла, как у меня уже есть это.

Итак, я попытался снова, используя values и filter, как это -

Role.objects.values('role_name').filter(pk=2)

Теперь, в этом случае он возвращает мне role_name, но как массив объектов.

Так как в таблице базы данных Role всегда будет одна запись, я ожидаю, что она возвратит словарь или только его значение.

Ответы [ 2 ]

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

Но проблема в том, что он возвращает id экземпляра

Нет. Он либо вернет объект Role, либо выдаст исключение Role.DoesNotExist.

role = Role.objects.get(pk=2)
role_name = role.role_name
0 голосов
/ 16 апреля 2020

Мне просто нужно было сделать это -

Role.objects.value('id', 'role_name').get(pk=2)

get() всегда будет возвращать один объект и, если в запросе будет более одного объекта, он вызовет исключение.

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