django实现多级评论功能

本文档介绍了如何在Django项目中使用django-mptt库来创建一个支持多级评论的功能。首先通过pip安装mptt,然后在settings.py中注册应用。接着定义Comment模型,包括外键关联、评论内容、创建时间以及回复信息。在视图中处理评论的添加,根据是否有父评论来决定是否为二级评论。最后在HTML模板中使用递归模板标签展示评论及其子评论,并提供回复评论的表单。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用django-mptt实现多级评论功能

1、安装django-mptt

pip install django-mptt

2、settings.py中注册

INSTALLED_APPS = [
    ...
    'mptt',

    ...
]

3、评论模型 model


class Comment(MPTTModel):
    public = models.ForeignKey(PublishInformation, on_delete=models.CASCADE, related_name='comments_detail', verbose_name='关联的内容')
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='comments_user', verbose_name='评论的人')
    userNickname = models.CharField(max_length=50, verbose_name='评论人的昵称', default='匿名')
    body = models.TextField(verbose_name='评论内容')
    created = models.DateTimeField(auto_now_add=True)
    parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children')

    # 新增,记录二级评论回复给谁, str
    reply_to = models.ForeignKey(User, null=True, blank=True, on_delete=models.CASCADE, related_name='replyers')

    # class Meta:
    #     ordering = ('created',)

    class MPTTMeta:
        order_insertion_by = ['created']
        ordering = ['-created']
    class Meta:
        ordering = ['-created']
    def __str__(self):
        return self.body[:20]

4、view视图

# 文章评论
#增加评论
def addComment(request
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值