2
  1. なぜ再帰的な関係を作成するのですか?
  2.     aField = models.ForeignKey('self')
    
  3. これは上記と同じですか?
        クラスaClass(models.Model):  
        aField = models.ForeignKey('aClass')
4

1 に答える 1

7
  1. 同一のモデル構造を持つ親ノードと子ノードが必要な場合は、再帰的な関係を作成する必要があります。たとえば、テキスト、データ、user_idを含むコメントがある場合:

    class Comment( models.Model ):
        text = models.TextField()
        create_date_time = models.DateTimeField()
        parent_comment = models.ForeignKey( 'self' )
    
  2. はい(テストしてみることができます)と思いますが、良い形ではありません。クラス名を変更する場合は、角かっこで囲まれた文字列値を変更する必要があります。'self'を使用する場合、この頭痛の種はありません。

于 2012-11-01T18:01:37.417 に答える