我有以下模型(简化):
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 关系列表吗?