次のモデルがあります(簡略化):
class InscriptionDate(models.Model):
start_date = models.ForeignKey('Date', related_name='+')
end_date = models.ForeignKey('Date', related_name='+')
dates_in_range = models.ManyToManyField('Date', blank=True)
class Date(models.Model):
year = models.IntegerField(max_length=4)
era = models.CharField(max_length=2, choices=ERA_CHOICES, default=BC)
開始日と終了日が選択された後、保存時にdates_in_rangeに関連するすべてのM2M関係を生成したいと考えています。範囲内の任意の日付を照会でき、その日付に関連付けられたエントリが返されるという考えです。
以下は正しくありませんが、これは私が取ろうと考えていた種類のアプローチでした:
def save(self):
start = self.start_date.year
end = self.end_date.year
for i in range(start, end):
self.dates_in_range.add(year)
super(InscriptionDate, self).save()
この方法で M2M 関係の add() をループすることは可能ですか? この方法で、入力データから M2M 関係の完全なリストを生成して追加できますか?