0
私はこのパターンを何度も見たことがありますが、なぜ人々がそれを使用して学びたいのか分かりません。Djangoモデルで 'self'外部キーを使用する理由
ここに小さなコピーが貼り付けられています:カテゴリクラスは、自己との外部キー関係を持つブログ投稿カテゴリです。私はこのような関係を持つために何を得ますか?
class Category(models.Model):
name = models.CharField(max_length=32)
slug = models.SlugField(max_length=32)
parent = models.ForeignKey('self', blank=True, null=True)
次は同じモデルの投稿エントリです。ここでは、このブログがユーザーシステムを持っていれば、エントリーカテゴリーをキーまたはユーザーとして持つことが明らかであることがわかります。
class Entry(models.Model):
title = models.CharField(max_length=64)
slug = models.SlugField(max_length=32, default='', blank=True)
created = models.DateTimeField(auto_now=True)
updated = models.DateTimeField(auto_now=True)
content = models.TextField()
category = models.ForeignKey(Category)
これにより、カテゴリを別のカテゴリのサブカテゴリにすることができます。基本的に、これはあなたのカテゴリにツリー構造を作成します。あるいは、サイクルでそれらを接続すると、他の奇妙なトポロジーを作ることができると思います。 – Kendas
https://docs.djangoproject.com/en/1.11/ref/models/fields/#foreignkey – Kendas
これは実際にはかなり意味があります。私の素朴なバージョンは別のモデルを使用して、カテゴリとの重要な関係を持つ「サブカテゴリ」と言うことができます。説明をありがとう。 –