From e8698c02a40ec5c5d8d0d2465c1823b3a8cd9558 Mon Sep 17 00:00:00 2001 From: xdqw166 Date: Sat, 8 Nov 2025 21:20:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/DjangoBlog/comments/apps.py | 5 ++++- src/DjangoBlog/comments/forms.py | 8 ++++++-- src/DjangoBlog/comments/models.py | 16 +++++++++++----- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/DjangoBlog/comments/apps.py b/src/DjangoBlog/comments/apps.py index ff01b77..a6fbd56 100644 --- a/src/DjangoBlog/comments/apps.py +++ b/src/DjangoBlog/comments/apps.py @@ -1,5 +1,8 @@ +# zy: 评论应用配置模块 - 定义comments应用的配置信息 from django.apps import AppConfig - +# zy: 评论应用配置类 - 继承自Django的AppConfig基类 class CommentsConfig(AppConfig): + # zy: 应用名称 - 指定Django内部使用的应用标识 + # 这个名称应该与INSTALLED_APPS中的名称一致 name = 'comments' diff --git a/src/DjangoBlog/comments/forms.py b/src/DjangoBlog/comments/forms.py index e83737d..8f04b50 100644 --- a/src/DjangoBlog/comments/forms.py +++ b/src/DjangoBlog/comments/forms.py @@ -1,13 +1,17 @@ +# zy: 评论表单模块 - 定义评论相关的表单类和验证逻辑 from django import forms from django.forms import ModelForm - +# zy: 导入评论模型,用于创建基于模型的自定义表单 from .models import Comment - +# zy: 评论表单类 - 继承自ModelForm,用于处理评论的创建和验证 class CommentForm(ModelForm): + # zy: 父评论ID字段 - 用于实现评论回复功能 + # 这是一个隐藏字段,不在页面显示,用于记录回复的父评论 parent_comment_id = forms.IntegerField( widget=forms.HiddenInput, required=False) + # zy: 表单元数据配置类 - 定义表单与模型的关联关系 class Meta: model = Comment fields = ['body'] diff --git a/src/DjangoBlog/comments/models.py b/src/DjangoBlog/comments/models.py index 7c3bbc8..12e7509 100644 --- a/src/DjangoBlog/comments/models.py +++ b/src/DjangoBlog/comments/models.py @@ -1,38 +1,44 @@ +# zy: 评论数据模型模块 - 定义评论的数据结构和数据库表结构 from django.conf import settings from django.db import models from django.utils.timezone import now from django.utils.translation import gettext_lazy as _ - +# zy: 导入博客文章模型,用于建立评论与文章的关联 from blog.models import Article -# Create your models here. +# zy: 评论数据模型类 - 继承自Django的Model基类,对应数据库中的评论表 class Comment(models.Model): body = models.TextField('正文', max_length=300) creation_time = models.DateTimeField(_('creation time'), default=now) last_modify_time = models.DateTimeField(_('last modify time'), default=now) + # zy: 作者外键字段 - 关联到用户模型,删除用户时级联删除其评论 author = models.ForeignKey( settings.AUTH_USER_MODEL, verbose_name=_('author'), on_delete=models.CASCADE) + # zy: 文章外键字段 - 关联到博客文章模型,删除文章时级联删除相关评论 article = models.ForeignKey( Article, verbose_name=_('article'), on_delete=models.CASCADE) + # zy: 父评论自关联字段 - 实现评论回复功能,允许评论有父评论 parent_comment = models.ForeignKey( 'self', verbose_name=_('parent comment'), blank=True, null=True, on_delete=models.CASCADE) + # zy: 启用状态字段 - 控制评论是否显示,用于评论审核机制 is_enable = models.BooleanField(_('enable'), default=False, blank=False, null=False) + # zy: 模型元数据配置类 - 定义模型的数据库和行为配置 class Meta: - ordering = ['-id'] - verbose_name = _('comment') - verbose_name_plural = verbose_name + ordering = ['-id'] # zy: 默认排序规则 - 按ID降序排列,新的评论显示在前面 + verbose_name = _('comment') # zy: 模型在Admin中的单数显示名称 + verbose_name_plural = verbose_name # zy: 模型在Admin中的复数显示名称 get_latest_by = 'id' def __str__(self):