Как получить значение первичного ключа любой таблицы для конкретной строки - PullRequest
0 голосов
/ 23 сентября 2019

В django я создаю пользователя, и после этого я хочу PK пользователя, а затем хочу поместить его в какую-то другую таблицу.

Я использую приведенный ниже код

id_profile = User.objects.filter(email = email)
id_profile = id_for_profile.values("id")

здесь я получаю вывод <QuerySet [{'id': 11}]>

, но я хочу, чтобы число «11» ассоциировалось с переменной «id_profile»

Как это можно сделать?

[[решено]]

Возвращается список словарей, я могу получить доступ к значениям таким способом.

или используя ответы, которые были предоставлены ниже.

Ответы [ 3 ]

1 голос
/ 23 сентября 2019

Вы можете попробовать это:

id_profile = User.objects.get(pk=pk)
pk = id_profile.pk

Вы также можете использовать contenttypes

user_pk = ContentType.objects.get(app_label='auth',model='user').pk
1 голос
/ 23 сентября 2019

Поскольку поле email уникально, вы должны использовать get, так как модель не будет возвращать более одного user объекта.

Вы должны использовать get_object_or_404.Если электронная почта не существует, будет сгенерировано исключение.

from django.shortcuts import get_object_or_404

user = get_object_or_404(User, email=email)
# to access the pk you can do this
user.pk
1 голос
/ 23 сентября 2019
User.objects.filter(email = email)

это список.

попробуйте с

id_profile[0].id

или используйте get вместо filter метода

id_profile = User.objects.get(email = email)

, теперь он вернет объект и получит доступ к pk

id_profile.pk
...