django按两个字段排序ManyToManyField

时间:2015-11-12 19:38:30

标签: django

如何使用M2M模型对具有值和另一个字段值的字段进行排序。

模型是:

from django.db import models

class CalculatedValue(models.Model):
    Name     = models.CharField( max_length=200 )
    Value    = models.FloatField()

class MyModel(models.Model):
    Calculated_values = models.ManyToManyField( CalculatedValue ) 

一个例子是:

#first instance 
mdlOne = MyModel.objects.create()
topping = CalculatedValue.objects.create(Name='Cheese', Value=8. )
mdlOne.Calculated_values.add( topping )

favorite = CalculatedValue.objects.create(Name='Up Vote', Value=4. )
mdlOne.Calculated_values.add( favorite )

#second instance
mdlTwo = MyModel.objects.create()
anotherTopping = CalculatedValue.objects.create(Name='Cheese', Value=6. )
mdlTwo.Calculated_values.add( anotherTopping )

我想用奶酪值对MyModel进行排序。在此示例中,查询集将是(mdlTwo,mdlOne)。

如果我只想按CalculatedValue值排序,我可以这样做:

MyModel.objects.all().order_by(‘Calculated_values__Value’)

当我希望通过Value where name ='Cheese'进行排序时,上面将按所有值排序。我不知道如何和名字='奶酪'。

0 个答案:

没有答案