Django搭建个人博客:在博文中发表评论

本文介绍了如何使用Django框架为个人博客添加评论功能,包括创建评论模型、表单、URL、视图,以及在文章详情页面展示评论。通过综合运用Django基础知识,实现用户提交评论并显示,同时提供了测试和扩展功能的建议。

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

在没有互联网的年代,我们用日记来记录每天的心得体会。小的时候我有一个带锁的日记本,生怕被别人看见里面写了啥,钥匙藏得那叫一个绝。

现在时代变了,网络版的日记本:博客,却巴不得越多人看越好。

别人看完你写的深度好文,难免也想高谈阔论一番,这就是“评论”功能。

本章将要编写的评论模块,几乎没有新的知识点,而是将前面章节内容的综合应用。

强烈建议读者自行尝试编写这部分内容,测试自己的知识掌握程度。

准备工作

评论是一个相对独立的功能,因此新建一个评论的app:

(env) E:\django_project\my_blog > ppython manage.py startapp comment

有的人觉得奇怪,没有博文就没有评论,为什么说评论是“独立”的功能?

那是因为不仅博文可以评论,照片、视频甚至网站本身都可以“被评论”。将其封装成单独的模块方便以后的扩展。

确认app创建成功后,记得在settings.py中注册:

my_blog/settings.py

...
INSTALLED_APPS = [
    ...
    'comment',
]
...

TIME_ZONE = 'Asia/Shanghai'

...

因为我们想显示发表评论的时间,修改时区设置TIME_ZONE为上海的时区。

然后在my_blog/urls.py中注册根路由:

my_blog/urls.py

...
urlpatterns = [
    ...
    # 评论
    path('comment/', include('comment.urls', namespace='comment')),
]
...

编写核心功能

评论的模型

首先编写评论的模型:

comment/models.py

from django.db import models
from django.contrib.auth.models import User
from article.models import ArticlePost

# 博文的评论
class Comment(models.Model):
    article = models.ForeignKey(
        ArticlePost,
        on_delete=models.CASCADE,
        related_name='comments'
    )
    user = models.ForeignKey(
        User, 
        on_delete=models.CASCADE, 
        related_name='comments'
    )
    body = models.TextField()
    created = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ('created',)

    def __str__(self):
        return self.body[:20]

模型中共有2个外键:

  • article是被评论的文章
  • user是评论的发布者

别忘了每次新增、修改Model后,必须数据迁移

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值