[英]How to make queryset in django?
item_list = Item.objects. filter(location_id=location_id)
image_list = Image.objects.filter(?????)
class Image(models.Model):
item = models.ForeignKey(Item, models.on_delete=CASCADE)
我只想获取第一个查询集 item_list 中 item_id 的那些图像
您可以使用__in
查找[Django-doc] :
image_list = Image.objects.filter(item__in=item_list)
对于某些数据库,例如 MySQL,有时不擅长优化非动态子查询,最好先实现Item
列表,然后在 Django 中传递 id 列表:
image_list = Image.objects.filter(item__in=list(item_list))
这在文档中指定为:
谨慎使用嵌套查询并了解您的数据库服务器的性能特征(如果有疑问,请进行基准测试!)。 一些数据库后端,尤其是 MySQL,不能很好地优化嵌套查询。 在这些情况下,提取值列表然后将其传递到第二个查询中会更有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.