как получить значение атрибута (pk) с помощью QuerySet - PullRequest
1 голос
/ 05 мая 2019

Я пытаюсь получить значение основного атрибута (pk).Как это сделать ? Эквивалентность для этого

SELECT id FROM User WHERE username="Fokoa"

Ответы [ 2 ]

2 голосов
/ 05 мая 2019

Несколько способов:

User.objects.filter(username='Fokoa').values_list('id', flat=True)

Или, если вы знаете, что username уникально:

user = User.objects.get(username='Fokoa')
user.id
1 голос
/ 05 мая 2019

Вы можете использовать .values_list(..) [Django-doc] для этого:

from django.contrib.auth.models import User

User.objects.filter(username='Fokoa')<b>.values_list('pk', flat=True)</b>

или мы можем преобразовать это в список первичных ключей с помощью:

from django.contrib.auth.models import User

<b>list(</b>User.objects.filter(username='Fokoa').values_list('id', flat=True)<b>)</b>

Это, как говорится, не очень часто запрашивать конкретный столбец в Django. Рекомендуется рассматривать первичные ключи как «жетоны черного ящика», поэтому не интерпретируйте их как целые, обрабатывающие их. В конце концов, суммирование двух первичных ключей часто не имеет особого смысла.

...