zoukankan      html  css  js  c++  java
  • django全文检索内容中增加更多变量

    实际开发过程中,全文检索后的页面内容,除了搜索后的内容块外,别的内容块往往需要更多的数据库中的内容。比如一个购物网站,除了搜索后的产品内容外,往往还需要种类信息、变化的筛选信息等,这些都是需要从数据库中取出来的。

    采用前后端分离的应用模式,这个问题似乎不是问题。

    但是如果采用前后端不分离的应用模式,那么就需要重新定义搜索后显示的视图函数了(一般采用Haystack检索框架提供全文检索功能)。

    好了,废话不多说,开始操作:

    定义一个视图文件search_views.py(位置一般项目根目录或应用根目录),添加代码如下:

    from haystack.views import SearchView
    from goods.models import GoodsType
    
    class MySearchView(SearchView):
        """添加搜索页变量"""
        def extra_context(self):
            # 重载extra_context来添加额外的context内容
            context = super(MySearchView, self).extra_context()
            # 和别的视图一样,从模型类中获取模型类对象
            types = GoodsType.objects.all()
            # 将变量加入context中,模板中直接使用   {% for type in types %}  type就是模型类对象
            context['types'] = types
            return context

    然后修改路由配置:

    from search_views import MySearchView
    
    # path('search/', include('haystack.urls')),  # 全文检索框架
    path('search/', MySearchView()),  # 全文检索框架

    现在模板中就可以直接使用了,使用方法和模板变量一样。

  • 相关阅读:
    Java Socket通信读取相关信息代码
    Java Socket编程如何建立两者关系
    浅谈JAVA中如何利用socket进行网络编程(二)
    浅谈JAVA中如何利用socket进行网络编程(一)
    【Java TCP/IP Socket】TCP Socket(含代码)
    HTTP协议
    HTTP协议详解
    TCP/IP协议与Http协议的区别
    MultipartResolver实现文件上传功能
    ***CodeIgnite/CI 去掉 index.php的 配置
  • 原文地址:https://www.cnblogs.com/zzmx0/p/13216910.html
Copyright © 2011-2022 走看看