如何获取一个particu的任意表的主键值

2024-04-20 10:35:35 发布

您现在位置:Python中文网/ 问答频道 /正文

在django中,Im创建user,然后我想要用户的PK,然后我想把它放到其他表中。你知道吗

我正在使用下面的代码

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

这里我得到了输出<QuerySet [{'id': 11}]>

但是我想要与变量“id\u profile”相关联的数字“11”

怎么做?你知道吗

[[已解决]]

它返回一个字典列表,我可以用这种方式访问值。你知道吗

或者使用下面提供的答案。你知道吗


Tags: django代码用户idforobjectsemailfilter
3条回答

因为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
User.objects.filter(email = email)

是列表。你知道吗

尝试

id_profile[0].id

或者使用get而不是filter方法

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

现在它将返回一个对象,并访问pk

id_profile.pk

你可以试试这个:

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

也可以使用contenttypes

user_pk = ContentType.objects.get(app_label='auth',model='user').pk

相关问题 更多 >