使用django中的聚合获取最小值字段名称

Shi*_*dla 13 python django min django-aggregation

我有一个模型,下面有一些字段

class Choclate(models.Model):
    name = models.CharField(max_length=256)
    price = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

所以我想获得具有该lowest price 值的字段名称,因此为了获得该lowest price值,我们可以像下面这样使用Aggregations

from django.db.models import Avg, Max, Min

choclates = Choclate.objects.all()
lowest_price = choclates.aggregate(Min('price'))
Run Code Online (Sandbox Code Playgroud)

那么最后如何获得field name与django中最低价格相关的?

Pra*_*aur 11

您可以尝试以下代码来获得您想要的确切内容

>>> from django.db.models import Min
>>> Choclate.objects.filter().values_list('name').annotate(Min('price')).order_by('price')[0]
(u'First1', 10)
>>>
Run Code Online (Sandbox Code Playgroud)

First1是具有price = 10的字段名称,其是最低值.