注释相关字段的计数

时间:2014-03-18 10:15:11

标签: django django-models

django:1.5.5

我需要按租金数量订购域名。

模型:

class Rental(models.Model):
    ...

class Domain(models.Model):
    ...


class RentalExtraBase(models.Model):
    rental = models.ForeignKey(Rental, unique=True, related_name='extras')

    class Meta:
       abstract = True


class RentalExtra(RentalExtraBase):
    domain = models.ForeignKey(Domain)

查询:

from django.db.models import Count
Domain.objects.all().annotate(rentalextra_set_count=Count('rentalextra_set'))

然而,使用这个领域似乎是不可能的。我尝试使用特定的related_name但没有成功。

错误:

FieldError: Cannot resolve keyword 'rentalextra_set' into field ... (list of the Domain fields without rentalextra or rentalextra_set)

有什么想法吗?

方面

1 个答案:

答案 0 :(得分:3)

您只需使用相关模型的小写名称,就像在查询中向后关注关系一样:

Domain.objects.all().annotate(rentalextra_set_count=Count('rentalextra'))