将相关 ID 列表添加到 Django 查询集中的返回值
Adding List of Related IDs to returned values in a Django Queryset
根据Django's Docs中的例子,我可以得到这样一个反向相关对象的列表:
Blog.objects.values('entry__id')
这大概会给我所有相关 Entry 对象的 ID。如果除了在正常 .values()
调用中返回的所有其他信息之外,我还需要此信息,是否有添加它的快捷方式?或者我是否需要在 .values()
中明确列出所有模型的字段以在输出中包含反向键?
您可以使用 annotate
从外键添加额外字段
from django.db.models import F
blogs = Blog.objects.all().annotate(entry_id=F('entry__id'))
for blog in blogs:
print(blog.entry_id)
根据Django's Docs中的例子,我可以得到这样一个反向相关对象的列表:
Blog.objects.values('entry__id')
这大概会给我所有相关 Entry 对象的 ID。如果除了在正常 .values()
调用中返回的所有其他信息之外,我还需要此信息,是否有添加它的快捷方式?或者我是否需要在 .values()
中明确列出所有模型的字段以在输出中包含反向键?
您可以使用 annotate
从外键添加额外字段
from django.db.models import F
blogs = Blog.objects.all().annotate(entry_id=F('entry__id'))
for blog in blogs:
print(blog.entry_id)