Django如何根据相关模型对查询集进行过滤和排序

时间:2019-07-16 22:04:17

标签: python django

我有这个模特关系:

class Account:
    < ... fields ... >


class Balance(models.Model):       
    name = models.CharField(...)
    count = models.FloatField(...)
    account = models.ForeignKey(Account, related_name='balance')

假设我们有一些帐户。我需要按balance__name过滤这些帐户,并按balance__count进行排序。我需要排序的帐户,而不是余额列表。

我该怎么做?我什至没有任何建议可以找到使用迭代的解决方案。

1 个答案:

答案 0 :(得分:1)

您可以实现以下查询集:

Account.objects.filter(
    balance__name='my_balance_name'
).order_by('balance__count')

请注意,如果有多个具有给定名称的Balance帐户,则该帐户可以出现多次次。

如果您想按降序排列(从大的count到较小的count),则应加上减号(- ):

Account.objects.filter(
    balance__name='my_balance_name'
).order_by('-balance__count')