同一 class 内的 Django / OnetoMany 关系

Django / OnetoMany relation within the same class

这是我的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
    )

我从一个实例开始:场景 1

问题是我想选择很多,而不是一对一,如下所述

不过,当我改成

previous = models.ManyToManyField(

然后我也得到关于on_delete的错误:

TypeError: init() 得到了一个意外的关键字参数 'on_delete'

最好的 djangonic 方式是什么?

据我了解,您的要求是:

  • 一个场景可以有只有一个之前的场景
  • 一个场景可以有多个下一个场景

你快到了。代替 OneToOneField,使用 ForeignKeyself 参考:

previous = models.ForeignKey('self', related_name='next', ...)