iba*_*uio 58 sql django django-models
如何获取表的所有id/primary键列表.说我有这张桌子:
class Blog(models.Model)
title = models.CharField()
body = models.CharField()
author = models.ForeignKey(Author)
Run Code Online (Sandbox Code Playgroud)
假设字段作者是Author对象.我想得到Blog = author的所有博客
我知道我可以使用
blogs = Blog.objects.filter(author=author)
Run Code Online (Sandbox Code Playgroud)
并以列表形式获取所有博客对象,但我如何获得列表IDS/PK?类似于"从作者=作者的博客中选择ID"
Ste*_*yan 98
您可以使用values_list方法执行此操作.
blogs = Blog.objects.filter(author=author).values_list('id', flat=True)
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅django queryset文档.
And*_*ter 61
Blog.objects.filter(author=author).values_list('id', flat=True)
Run Code Online (Sandbox Code Playgroud)
values_list()给出一个行列表,每行按顺序指定为参数指定的所有字段的元组.如果只将一个字段作为参数传递,则还可以指定flat=True获取普通列表而不是元组列表.
小智 8
Blog.objects.filter(author=author).values_list('pk', flat=True)
Run Code Online (Sandbox Code Playgroud)
将pk代替id,只是最佳实践。
values_list迭代时它返回元组。每个元组包含传递到values_list() 的相应字段或表达式的值。
author = Blog.objects.filter(author=author)
ids = author.values_list('pk', flat=True)
# list method get ids without parse the returning queryset
print(list(ids))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42841 次 |
| 最近记录: |