【发布时间】:2020-12-21 00:54:37
【问题描述】:
我正在尝试为我正在构建的社交媒体式网络应用程序构建评论部分。我有一个使用 Django 存储 cmets 的数据表,并且想构建一个回复功能。这是我的模型:
class Comments(models.Model):
id = models.AutoField(primary_key=True)
text = models.TextField()
author = models.CharField(max_length=50)
creation_time = models.DateTimeField(auto_now_add=True)
answer = models.ForeignKey(Answers, on_delete=models.CASCADE)
replyto = models.ForeignKey('self', null=True, on_delete=models.CASCADE)
def __str__(self):
return self.author + ' commented: ' + self.text
基本上,每当有人回复之前的评论时,我都会将之前评论的 ID 存储在“replyto”字段中,我希望通过该 ID 将当前评论链接到之前的评论。在从我设置的视图中获取当前评论时,我想获取当前评论的所有字段(如上所述)以及先前评论的文本和作者(即正在回复的评论)。
在基本 SQL 中,我认为这将是一些自联接逻辑。如何在 Django 中执行此操作(并显示上述被回复评论的附加文本和作者字段)?谢谢!
【问题讨论】:
标签: python sql django self-join