Django中的pk__in是什么意思?

9 投票
2 回答
9311 浏览
提问于 2025-04-15 18:53
Model.objects.filter(pk__in=[list of ids])

Model.objects.filter(pk__in=[1,2,3])

我该如何在模板中显示这些数据?

def xx(request):
    return HttpResponse(Model.objects.filter(pk__in=[1,2,3]))

2 个回答

0

这里有一个聪明的方法,可以批量选择数据(在处理大量数据时,这是一种最佳实践)。因为只发送了一条SQL查询,所以它比在循环中调用get/get_or_create要快。

试着测一下这个:

Model.objects.filter(pk__in=[list of ids])

还有这个:

[Model.objects.get(pk=i) for i in ids]

另外要注意,在你的笔记本电脑上,Django与数据库之间的通信延迟很小(在生产环境中可能会有所不同)。

18

这句话的意思是,给我所有模型Model的对象,这些对象的主键是123

可以查看字段查找 - in来了解更多。

你会得到一个对象的列表,可以像处理其他列表一样在模板中展示它们,使用for模板标签

{% for object in objects %}
    Some value: {{ object.value }}
{% endfor %}

想要学习如何创建一个Django应用,你可以阅读教程或者Django书籍

撰写回答