2012-08-12 69 views
0

我有一個多到許多領域的典範是這樣的:查詢一個多到許多領域的Django

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模型多對多關係矯枉過正?有沒有更好的方法來包含一組日期?

回答

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) 
+0

是什麼(是)之差(S),你在你的兩個方法注意到/個錯誤? – 2012-08-12 12:07:42