From 9f8d0b2868cdd22e5fd2afc30a0e75cc57e32370 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E6=AC=A3=E6=80=A1?= <3093609022@qq.com> Date: Sun, 9 Nov 2025 21:33:24 +0800 Subject: [PATCH] =?UTF-8?q?yxy=E6=B7=BB=E5=8A=A0=20forms.py=20=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DjangoBlog-master/blog/forms.py | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/djangoblog/src/DjangoBlog-master/DjangoBlog-master/blog/forms.py b/djangoblog/src/DjangoBlog-master/DjangoBlog-master/blog/forms.py index 715be762..690d1dd5 100644 --- a/djangoblog/src/DjangoBlog-master/DjangoBlog-master/blog/forms.py +++ b/djangoblog/src/DjangoBlog-master/DjangoBlog-master/blog/forms.py @@ -1,19 +1,41 @@ +# 导入日志模块,用于记录搜索相关日志 import logging +# 导入Django的表单模块,用于构建自定义表单 from django import forms +# 导入Haystack的搜索表单基类,用于扩展搜索功能 from haystack.forms import SearchForm +# 创建日志记录器,使用当前模块名作为日志器名称 logger = logging.getLogger(__name__) class BlogSearchForm(SearchForm): + """ + 博客搜索表单类,继承自Haystack的SearchForm + 用于自定义博客搜索的表单验证和搜索逻辑 + """ + # 定义搜索查询字段,required=True表示该字段为必填项 + # 用户输入的搜索关键词将通过该字段传递 querydata = forms.CharField(required=True) def search(self): + """ + 重写父类的search方法,实现自定义搜索逻辑 + 该方法会处理搜索请求并返回搜索结果 + """ + # 调用父类的search方法,获取初始搜索结果集 + # 父类方法会处理Haystack的核心搜索逻辑 datas = super(BlogSearchForm, self).search() + + # 检查表单数据是否有效,若无效则返回无查询结果的默认响应 if not self.is_valid(): return self.no_query_found() + # 如果表单验证通过且存在查询数据(querydata) if self.cleaned_data['querydata']: + # 记录搜索关键词到日志,方便后续分析用户搜索行为 logger.info(self.cleaned_data['querydata']) - return datas + + # 返回处理后的搜索结果集 + return datas \ No newline at end of file