以下是一个例子:
Models.py
class Category(models.Model):
name = models.Charfield(max_length=120 blank=True, null=True, default=None)
class Product(models.Model):
category = models.Foreignkey(Category)
这是我之前所做的:
products = [Product.objects.filter(category_id=i.id)[:6] for i in Category.objects.all()]
如何有效地获取每个类别包含6个产品的列表,而不使用'?'?
答案 0 :(得分:2)
Postgres有一个从子查询制作数组的非常好的方法。因此,如果您使用Postgres,这将适合您。
sudo docker run -it --name container --cap-add=NET_ADMIN --device=/dev/net/tun --sysctl net.ipv6.conf.all.disable_ipv6=0 myimage
这种方式效率更高: 让我们与您的版本进行比较
您的版本:1个类别查询+类别数量乘以1个产品查询。一个循环。
我的版本:1个查询。