2017-07-27 23 views
1

私のデータベースにこの種の変更を送信する前に、私がしていることがOKかどうかを知りたいと思います。同じテーブルのDjangoモデルの外部キー

class Comments(models.Model): 
    text = models.CharField(max_length=300, null=False) 
    image = models.FileField(upload_to=user_directory_path_comments, validators=[validate_file_extension], blank=True, null=True) 
    articles = models.ForeignKey(Articles, verbose_name="Article", null=False) 
    author = models.ForeignKey(User, verbose_name="Auteur") 
    in_answer_to = models.ForeignKey(Comments, verbose_name="En réponse au commentaire", blank=True, null=True) 
    date = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name="Date de création") 
    update = models.DateTimeField(auto_now=True, verbose_name="Dernière modification") 

    def __str__(self): 
     return self.text 

私の記事のブログにコメントを記入するコメントと呼ばれるモデルがあります。コメントに答える機能を追加したいので、フィールド名を追加します。答えがあれば、コメントのIDを追加します。

外部キーフィールドを追加すると、それは同じテーブルであることが分かりますか?これは本当に外部キーではありませんか?

答えて

2

同じモデルを参照するForeignKeyを使用できますが、その場合は、othermodel引数として'self'を使用する必要があります。 models.ForeignKey('self', on_delete=models.CASCADE)を使用する - 自分自身との多対1の関係を持つオブジェクト - 再帰的な関係を作成するには

the documentationから

関連する問題