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