我用Django制作了一个评论模型。我将如何制作一个评论回复模型?

我用Django制作了一个评论模型。我将如何制作一个评论回复模型?,django,django-models,Django,Django Models,以下是我的评论模式: 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=Fals

以下是我的评论模式:

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)
我如何制作另一个模型来回复这个评论模型,然后再次回复回复的评论。如果你还需要关于这个问题的更多细节,请告诉我

类似这样:

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
父Null

回复第一个回复-
评论1
答复2
父项1类似这样的内容:

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
父Null

回复第一个回复-
评论1
答复2

家长1让我们假设这是对新闻文章的评论:

添加父字段和项目字段。任何没有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条评论记录的parentID是其他评论的parentID,没有ID(表示它们是回复),然后您可以有更多的记录的parentID是这些评论的ID


这还具有不需要另一个模型类的优点。“回复”与评论相同,只是没有家长。

假设这是对新闻文章的评论:

添加父字段和项目字段。任何没有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条评论记录的parentID是其他评论的parentID,没有ID(表示它们是回复),然后您可以有更多的记录的parentID是这些评论的ID


这还具有不需要另一个模型类的优点。“回复”与评论相同,只是没有家长。

谢谢你的回复,但是我怎么能让别人回复回复呢?@MitchellPottratz我编辑了我的答案,希望能有所帮助?谢谢你的回复,但是我怎么能让人回复回复评论呢?@MitchellPottratz我编辑了我的答案,希望能有所帮助?