【发布时间】:2018-03-27 04:17:36
【问题描述】:
如何在另一个许多queryset django对象中从一组queryset对象(包含一个搜索对象)中找到一个对象的许多匹配项
例如,如何在订单产品中找到最频繁的产品并推断其数量
我为这样的问题道歉,我还是菜鸟,我的大脑不能 如此批判性的思考
订购型号
class Order(models.Model):
products_of_order = models.ManyToManyField("ProducInOrder", related_name='Some_Products')
class ProducInOrder(models.Model):
order = models.ForeignKey(Order, blank=True, null=True, default=None)
product = models.ForeignKey(Product, blank=True, default=None)
quantity = models.IntegerField(default=0)
产品型号
class Product(models.Model):
name_of_product = models.CharField(max_length=20)
我尝试这样做:
product = Product.objects.all()
some = Order.objects.filter(products_of_order__product__in=product).count()
但它只是返回包含订单产品的所有产品, 如何计算与产品列表匹配的订单产品中的每个产品。
我知道如何制作它,但我想在一行中制作它)在一个查询集中)
some_dict = {}
for i in some:
for s in i.products_of_order.all():
if s.product.name_of_product in some_dict:
some_dict.s.product.name_of_product += 1
else:
some_dict.s.product.name_of_product = 1
【问题讨论】:
标签: python django django-queryset