Взгляните на django-schedule , который уже внедрил систему для этого. Они используют класс Period , который знает, как собирать отдельные события в течение определенного периода времени, и, таким образом, они могут поддерживать бесконечное повторение.
Если вы хотите манифестировать реальные отдельные объекты модели в администраторе Django для каждого повторяющегося события, это тоже возможно, но вам придется отказаться от поддержки бесконечного повторения (вы просто не можете генерировать бесконечное число модельные объекты). Я реализовал это для одного проекта: каждый отдельный объект Occurrence имел необязательный ForeignKey для модели Recurrence, в которой хранились метаданные о повторении (т. Е. «Еженедельно по понедельникам, начинающимся с этой даты»). В методе save () объекта Recurrence я бы удалил или создал любые связанные с ним вхождения, необходимые для соответствия его новым данным.
Первое решение - это превосходное общее решение проблемы, но вам, возможно, придется выполнять больше работы с пользовательским интерфейсом самостоятельно, поскольку вы не можете превратить каждое вхождение в реальный экземпляр модели.