Django 模型: 获取 id 列表

如何获得一个表的所有 id/主键的列表:

class Blog(models.Model)
title = models.CharField()
body = models.CharField()
author = models.ForeignKey(Author)

assume the field 作者 is an Author object. I want to get all the ids of Blog where author=author

我知道我可以利用

    blogs = Blog.objects.filter(author=author)

并获得所有的博客对象在一个列表形式,但如何获得列表 IDS/PK?类似于“从博客中选择 id,其中 Author = Author”

113539 次浏览

您可以使用 values_list方法完成此操作。

blogs = Blog.objects.filter(author=author).values_list('id', flat=True)

详情请看 Django 查询集文档

Blog.objects.filter(author=author).values_list('id', flat=True)

values_list()给出了一个行列表,每一行是您指定为参数的所有字段的元组,按顺序排列。如果只传入一个字段作为参数,还可以指定 flat=True来获取一个普通列表,而不是元组列表。

Blog.objects.filter(author=author).values_list('pk', flat=True)

为了最佳实践,将 pk改为 id