You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django新手求助:如何从搜索结果中获取唯一分类名称?

从搜索结果中获取唯一分类名称的方法

针对你的需求,有两种简单的实现方式,直接替换代码里的context['categorys'] = ===>> Here <<===即可:

方法一:直接获取分类名称列表

如果只需要category_name的字符串列表,用下面的代码:

context['categorys'] = search_result.values_list('category__category_name', flat=True).distinct()
  • values_list('category__category_name', flat=True):提取关联分类的名称字段,返回一维字符串列表
  • distinct():自动去除重复的分类名称

方法二:获取完整的分类对象(推荐)

如果后续需要用到分类的其他属性(比如logo、slug),建议获取完整的Category对象:

context['categorys'] = Category.objects.filter(products__in=search_result).distinct()

之后在模板中可以这样调用分类名称:

{% for category in categorys %}
    {{ category.category_name }}
{% endfor %}

注意事项

  • 你的Product模型中category字段已设置related_name="Products",所以反向查询用products__in(Django会自动将大写的Products转为小写用于查询)
  • 必须加上distinct(),避免出现重复的分类

内容的提问来源于stack exchange,提问作者Partho Debnath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 13:57:28