这是我的评论模型:
class Comment(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
subject = models.TextField(max_length=100)
message = models.TextField(max_length=1500)
timestamp = models.DateTimeField(auto_now_add=False)
我如何创建另一个可以回复此评论模型的模型,然后再次回复回复的评论。如果您对问题有任何更详细的信息,请与我们联系。
答案 0 :(得分:2)
让我们假设这是对新闻文章的评论:
添加父字段和文章字段。任何没有parentID的评论记录意味着它直接评论该文章,任何带有parentID的评论意味着它是对另一条评论的评论/回复。
class Comment(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
subject = models.TextField(max_length=100)
message = models.TextField(max_length=1500)
timestamp = models.DateTimeField(auto_now_add=False)
article = models.ForeignKey(article)
parent = models.ForeignKey(Comment, null=True, on_delete=models.CASCADE)
这意味着您可以拥有1条没有parentID的记录(这意味着它是对该文章的直接评论),50条评论记录,其中父ID是另一条没有ID的评论(表示它们是回复),然后您可以拥有更多具有父ID的记录,这些记录是这些评论的ID。
这也有不需要另一个模型类的好处。 A'回复'与评论相同,只是没有父母。
答案 1 :(得分:0)
这样的事情:
class Reply(models.Model):
reply = models.TextField(max_length=1500)
comment = models.ForeignKey('Comment', on_delete=models.CASCADE)
parent = models.ForeignKey('self', null=True)
然后,您可以对每条评论进行多次回复。
使用父外键记录有人回复的时间。
例如,这就是您在数据库中的期望:
首先评论和回复 -
评论1
回复1
家长空
回复第一个回复 -
评论1
回复2
家长1