Django / Отношения OnetoMany внутри одного класса

Вот мой models.py

class Scenes(models.Model):
    name = models.SlugField('Scene name', max_length=60,unique=True)
    record_date = models.DateTimeField('Scene date')

    manager = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        blank=True,
        null=True,
        on_delete=models.SET_NULL)
   
 description = models.TextField(blank=True)

    previous = models.OneToOneField(
        'self',
        blank=True,
        null=True,
        related_name='next',
        on_delete=models.SET_NULL
    )

Я начал с одного экземпляра: Scene1

Проблема в том, что я хочу иметь on to many choices, а не one to one, как объясняется ниже

enter image description here

Тем не менее, когда я меняю на

previous = models.ManyToManyField(

Затем я также получаю ошибку on_delete :

TypeError: init() получил неожиданный аргумент ключевого слова 'on_delete'

Каким будет лучший джангонский способ?

Насколько я понимаю, ваши требования таковы:

  • У одной сцены может быть только одна предыдущая сцена
  • У одной сцены может быть много следующих сцен

Вы почти у цели. Вместо OneToOneField используйте ForeignKey со ссылкой self:

previous = models.ForeignKey('self', related_name='next', ...)
Вернуться на верх