- なぜ再帰的な関係を作成するのですか?
- これは上記と同じですか?
aField = models.ForeignKey('self')
クラスaClass(models.Model): aField = models.ForeignKey('aClass')
aField = models.ForeignKey('self')
クラスaClass(models.Model): aField = models.ForeignKey('aClass')
同一のモデル構造を持つ親ノードと子ノードが必要な場合は、再帰的な関係を作成する必要があります。たとえば、テキスト、データ、user_idを含むコメントがある場合:
class Comment( models.Model ):
text = models.TextField()
create_date_time = models.DateTimeField()
parent_comment = models.ForeignKey( 'self' )
はい(テストしてみることができます)と思いますが、良い形ではありません。クラス名を変更する場合は、角かっこで囲まれた文字列値を変更する必要があります。'self'を使用する場合、この頭痛の種はありません。