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

标签 python django

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

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

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

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

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

最佳答案

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

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

关于python - Django 中的无限递归/嵌套类别树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32938650/

相关文章:

python - 在 django 模板中输出排序的 python 字典

python - 如何在运行时使用类型定义具有内部类的类?

python - 清理数据集的最佳方法

python - 如何创建随机范围,但排除特定数字?

python - RGB图像的PCA

用于 jasny 文件上传的 django-crispy-forms

python - 在 Django 模型表单中使用模型属性

django - EC2 hosts Django with IP address can't be assigned-to 错误

django - 如何在 Django 过滤器查询中使用大于和小于或等于

python - 使用 Google App Engine 上的 Blobstore 处理程序通过 POST 上传文件时,奇怪的等号 "="会插入 <textarea> 值。