如何使用QuerySet获取属性(pk)的值

时间:2019-05-05 18:37:06

标签: django database django-queryset

我正在尝试获取主属性(pk)的值。怎么做 ? 与此等效

SELECT id FROM User WHERE username="Fokoa"

2 个答案:

答案 0 :(得分:2)

多种方式:

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

或者,如果您知道username是唯一的:

user = User.objects.get(username='Fokoa')
user.id

答案 1 :(得分:1)

您可以使用.values_list(..) [Django-doc]

from django.contrib.auth.models import User

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

或者我们可以使用以下方法将其转换为主键列表:

from django.contrib.auth.models import User

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

话虽如此,在Django中查询特定列并不是很常见。优良作法是将主键视为“黑匣子令牌”,因此不要将其解释为整数来处理它们。毕竟,经常总结两个主键没有多大意义。