0

次のような多対多フィールドを持つモデルがあります。

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 モデルにとって多対多の関係を持つことはやり過ぎですか? 日付の配列を含めるより良い方法はありますか?

4

1 に答える 1

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)
于 2012-08-12T08:05:57.190 に答える