def create_future_events(self, date_stop=None):
if not self.date_stop and not date_stop:
raise ValidationError(_("Stop date should be specified."))
date_stop = min(filter(None, [date_stop, self.date_stop]))
current_date = max(self.time_start, timezone.now())
last_event = self.events.order_by('-date_start').first()
if last_event:
current_date = max(current_date, last_event.date_start + timedelta(days=1))
current_date = make_aware(datetime.combine(current_date, time.min))
added_events = []
for day in iter_daterange(current_date, date_stop):
if not getattr(self, 'on_day%d' % day.weekday()):
continue
event = self.gen_future_event(day)
event.full_clean()
event.save(force_insert=True)
added_events.append(event)
return added_events
评论列表
文章目录