我有两个模型Product
和Offer
。 Offer
与Product
相关,并包含'price'
字段。
我可以得到最小值:
Product.objects.get(pk=1).offer_set.aggregate(Min('price'))
但是如何才能知道列中出现这个值的次数?
有我的解决方案:
Product.objects.get(pk=1).offer_set.values('price').order_by().annotate(Count('price'))
然后我可以从返回列表中获取第一个元素
有更好的解决方案吗?
答案 0 :(得分:2)
你可以这样做,没试过;
from django.db.models import Count
Product.objects.get(pk=1).offer_set.all().values('price').annotate(total=Count('price')).order_by('price')