khu*_*bui 1 django django-queryset
抱歉这个愚蠢的问题。
我不知道在哪里可以找到此解决方案或任何关键字参考。
比方说,我有 2 个模型 Place 和 Tips,并且:
# list of place id
place_id_list = [...]
Run Code Online (Sandbox Code Playgroud)
如何在 place_id_list 上过滤提示,该列表仅为每个地方检索 <= 5 个提示对象
这是模型:
class Place:
...
class Tip:
# object_id is id of place
object_id = models.PositiveIntegerField(editable=False)
content_type = models.ForeignKey(ContentType)
Run Code Online (Sandbox Code Playgroud)
现在,我只使用for 循环,如:
tip_list = []
for place_id in place_id_list:
tip_list += Tip.objects.filter(object_id=place_id, content_type...)[0:5]
Run Code Online (Sandbox Code Playgroud)
但是这个查询似乎很慢。
有没有更好的解决办法?
谢谢。
tip_list = []
for place_id in place_id_list:
tip_list += Tip.objects.filter(object_id=place_id, content_type...)[:5]
Run Code Online (Sandbox Code Playgroud)
没有比这更好的方法了,因为你知道 django 是惰性加载器,除非需要新对象,否则不会访问数据库,
| 归档时间: |
|
| 查看次数: |
4538 次 |
| 最近记录: |