【发布时间】:2020-10-22 15:54:27
【问题描述】:
我有一个与自身递归相关的模型。其内容如下。
class Category(models.Model):
name = models.CharField(max_length=200)
parent = models.ForeignKey(
'self', blank=True, null=True,
related_name='children', on_delete=models.CASCADE)
class Meta:
verbose_name_plural = "Categories"
def __str__(self):
path = [self.name, ]
node = self.parent
while node is not None:
path.append(node.name)
node = node.parent
return '->'.join(path[::-1])
我想要实现的是一个小验证,防止超过 3 个孩子进入父类别。 例如,如果我按照上面的状态创建,它将保存如下:
Programming->Back-end->Python->ifelse.
我的问题:如何防止父类别有超过 3 个孩子?
【问题讨论】:
-
我很困惑:您是在问不能在上面创建类别“ifelse”,还是说类别“Python”不能有超过 3 个子项(“ifelse”,“ for", "while", 但不是 "trycatch")?
标签: django foreign-keys django-orm