次のような多対多フィールドを持つモデルがあります。
class BillingMonth(models.Model):
month = models.IntegerField(min=1, max=12)
class BillingCycle(models.Model):
description = models.CharField()
months_billed = models.ManyToManyField(BillingMonth)
各 BillingCycle (毎月、四半期ごとなど) は、1 か月以上で請求されます。レンタル機器のモデルは次のようになります。
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 モデルにとって多対多の関係を持つことはやり過ぎですか? 日付の配列を含めるより良い方法はありますか?