查询多对多字段django

时间:2012-08-12 07:55:23

标签: django many-to-many

我有一个具有多对多字段的模型,如下所示:

class BillingMonth(models.Model):
    month = models.IntegerField(min=1, max=12)

class BillingCycle(models.Model):
    description = models.CharField()
    months_billed = models.ManyToManyField(BillingMonth)

每个BillingCycle(每月,每季度等)将在一个或多个月内结算。租赁设备模型如下所示:

class RentalEquipment(models.Model):
    description = models.CharField()
    billing_cycle = models.ForeignKey(BillingCycle)

如何查找应在特定月份结算的所有RentalEquipment?这似乎不起作用:

billing_month = BillingMonth(month=8)
RentalEquipment.objects.filter(billing_cycle__months_billed=billing_month)

或者,对于BillingCycle模型,是否存在ManyToMany关系过度杀伤?是否有更好的方法来包含一系列日期?

1 个答案:

答案 0 :(得分:0)

看起来我可以像这样突破查询:

billing_month = BillingMonth(month=8)
billing_cycles = Billing_cycle.objects.filter(months_billed=billing_month)
equipment_needing_billing = RentalEquipment.objects.filter(billing_cycle__in=billing_cycles)
相关问题