From 3152a41bd28e7730710731fda3a56e9721109194 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 22:01:23 +0800 Subject: [PATCH] =?UTF-8?q?yxy=E6=B7=BB=E5=8A=A0=20build=5Fsearch=5Fwords.?= =?UTF-8?q?py=20=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../management/commands/build_search_words.py | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/djangoblog/src/DjangoBlog-master/DjangoBlog-master/blog/management/commands/build_search_words.py b/djangoblog/src/DjangoBlog-master/DjangoBlog-master/blog/management/commands/build_search_words.py index cfe7e0d5..b0d807e5 100644 --- a/djangoblog/src/DjangoBlog-master/DjangoBlog-master/blog/management/commands/build_search_words.py +++ b/djangoblog/src/DjangoBlog-master/DjangoBlog-master/blog/management/commands/build_search_words.py @@ -1,13 +1,32 @@ +# 导入Django命令基类,用于创建自定义管理命令 from django.core.management.base import BaseCommand +# 导入博客应用中的标签和分类模型 from blog.models import Tag, Category -# TODO 参数化 +# TODO: 后续可优化为支持参数化(如指定输出格式、过滤条件等) class Command(BaseCommand): + """ + Django自定义管理命令:生成搜索关键词列表 + 提取所有标签和分类的名称,用于构建搜索提示词或关键词库 + """ + # 命令的帮助信息(执行python manage.py help build_search_words时显示) help = 'build search words' def handle(self, *args, **options): - datas = set([t.name for t in Tag.objects.all()] + - [t.name for t in Category.objects.all()]) - print('\n'.join(datas)) + """ + 命令核心执行逻辑 + 当运行python manage.py build_search_words时调用 + """ + # 1. 提取所有标签(Tag)的名称并转换为列表 + # 2. 提取所有分类(Category)的名称并转换为列表 + # 3. 合并两个列表并通过set去重(确保关键词唯一) + datas = set( + [tag.name for tag in Tag.objects.all()] + # 标签名称列表 + [category.name for category in Category.objects.all()] # 分类名称列表 + ) + + # 将去重后的关键词按行打印输出 + # 格式为每个关键词单独一行,便于后续处理(如写入文件或导入搜索提示库) + print('\n'.join(datas)) \ No newline at end of file