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)
有什么想法吗?
方面
答案 0 :(得分:3)
您只需使用相关模型的小写名称,就像在查询中向后关注关系一样:
Domain.objects.all().annotate(rentalextra_set_count=Count('rentalextra'))