gpt4 book ai didi

Django 递归关系

转载 作者:行者123 更新时间:2023-12-04 07:02:06 24 4
gpt4 key购买 nike

我的 DjangoApp 正在使用类别来生成导航并将内容放入这些类别中。

有两种类型的类别:

  • ParentCategories(顶级类别)
  • ChildCategories(以 ParentCategory 作为父类的子类别)

  • 因为这些类别非常相似,所以我不想使用两个不同的模型。
    这是我的类别模型:
    class Category(models.Model):
    name = models.CharField(max_length=60)
    slug = models.SlugField(max_length=80, blank=True)
    is_parent = models.BooleanField()
    parent = models.ForeignKey('self', null=True, blank=True)

    在我的 djangoadmin 中,不会代表 parent 。
    如果我使用 python manage.py sql 我得到:
    CREATE TABLE "catalog_category" (
    "id" integer NOT NULL PRIMARY KEY,
    "name" varchar(60) NOT NULL,
    "slug" varchar(80) NOT NULL,
    "is_parent" bool NOT NULL
    )
    ;

    因此,甚至不会创建父关系。

    有没有方便的方法来解决这个问题?

    我知道我可以只更改表,但我正在刷新/删除数据库很多,因为应用程序变化很快,我不想每次都手动更改表。

    顺便说一句:我的开发数据库当然是 sqlite3。
    在服务器上,我们将使用 postgresql

    最佳答案

    其他事情正在发生 - parent的定义很好。如果我运行 manage.py sql在复制粘贴该模型的应用程序上,我得到:

    BEGIN;
    CREATE TABLE "bar_category" (
    "id" integer NOT NULL PRIMARY KEY,
    "name" varchar(60) NOT NULL,
    "slug" varchar(80) NOT NULL,
    "is_parent" bool NOT NULL,
    "parent_id" integer
    )
    ;
    COMMIT;

    关于Django 递归关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1687065/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com