2

私の DjangoApp は、カテゴリを使用してナビゲーションを生成し、それらのカテゴリにアイテムを配置しています。

カテゴリには次の 2 種類があります。

  • ParentCategories (上位カテゴリ)
  • ChildCategories (親として ParentCategory を持つサブカテゴリ)

カテゴリへのそれらは非常に似ているため、2 つの異なるモデルを使用したくありません。これは私のカテゴリモデルです:

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 では、親は表示されません。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を使用します

4

1 に答える 1

3

他に何かが起こっています-その定義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;
于 2009-11-06T11:49:35.917 に答える