Django中无限递归/嵌套的类别树

时间:2015-10-04 21:33:36

标签: python django

我试图在Django中创建一个无限嵌套的类别树。

class Category(models.Model):
    ParentCategory = models.ForeignKey(Category, blank=True)
    Name = models.CharField(max_length=255)

这里的想法是没有ParentCategory的所有类别都是主要类别(级别0)。所有来自0级的ParentCategory都是1级,依此类推。

这里唯一的问题是我无法在其内部引用Category。显然,返回的错误是:{3}的NameError: name 'Category' is not defined

我该如何解决这个问题?有可能吗?

1 个答案:

答案 0 :(得分:4)

由于在定义字段时尚未创建模型,因此您可以使用self来引用相同的模型:

class Category(models.Model):
    parent = models.ForeignKey('self', blank=True, null=True)
    name = models.CharField(max_length=255)