同一 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
,使用 ForeignKey
和 self
参考:
previous = models.ForeignKey('self', related_name='next', ...)
这是我的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
,使用 ForeignKey
和 self
参考:
previous = models.ForeignKey('self', related_name='next', ...)