2017-07-27 50 views
1

在將這種修改發送到我的數據庫之前,我只想知道我所做的是否可以。同一張表中的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引用相同的模型,但在這種情況下,你應該使用'self'作爲othermodel參數。

the documentation

要創建一個遞歸的關係 - 這與本身就是一個多到一個關係的對象 - 使用models.ForeignKey('self', on_delete=models.CASCADE)