在将此类修改发送到我的数据库之前,我只想知道我做的是否合适。
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
我有一个名为Comments的模型,用于列出我文章博客中的评论。我想添加回复评论的功能,所以我添加了一个字段名称,如果是答案,我会添加评论的ID。
那么,如果我添加一个外键字段,知道它是关于同一个表的话,这样可以吗?这不是真正的外键吗?
答案 0 :(得分:2)
您可以拥有引用相同模型的ForeignKey
,但在这种情况下,您应该使用'self'
作为othermodel
参数。
要创建递归关系 - 与自身具有多对一关系的对象 - 请使用
models.ForeignKey('self', on_delete=models.CASCADE)
。