class Dog(models.Model):
name = models.CharField(max_length=255)
toys = models.ManyToManyField('toys.Toy', through='dogs.DogToy')
class DogToy(models.Model):
dog = models.ForeignKey('dogs.Dog')
toy = models.ForeignKey('toys.Toy')
sort_order = models.IntegerField()
class Meta:
unique_together = (
('dog', 'toy'),
('dog', 'sort_order'),
)
使用上面的例子,我想dog.toys.all()
使用关系的sort_order
列进行排序,因为多只狗可能有相同的玩具,所以我不能按字段排序Toy
。查询后我不能使用 Pythonic 排序,因为我的狗有成千上万的玩具,我需要使用分页来进行性能。
在 SO 上提出了一些重复且几乎重复的问题,这些问题的回答不正确(答案等同于 using dog.toys.order_by('sort_order')
,这当然不起作用)。