Django CMS 搜索引擎,几个问题
Posted
技术标签:
【中文标题】Django CMS 搜索引擎,几个问题【英文标题】:Django CMS search engine, few questions 【发布时间】:2014-09-12 10:31:57 【问题描述】:很难找到这方面的好文档。我正在尝试为使用 CMS 2.4 版构建的一个非常小的 Django CMS 站点构建一个简单的搜索引擎。我发现最好的方法是使用 Haystack + django-cms-search,然后它告诉我该包已被弃用并使用 aldryn-search 代替,文档缺乏大量时间。
据我所知,我需要创建一个 search_indexes.py ,但这会去哪里?我以为这是特定于应用程序的?如果我只是用它来索引 CMS 中的 Page 模型,我该如何整合它?
【问题讨论】:
【参考方案1】:对于 django-cms-search 将是您的解决方案,一旦您切换到 >= 3.x,那么 aldryn-search
就是您的解决方案。
原因是aldryn-search
基本上是django-cms-search
的fork/refactor,目标是haystack 2.x 和cms 3.x
我正在考虑为 aldryn-search
添加向后兼容性以在 cms 2.4 上工作,但为了让您启动并运行,您可以执行以下操作。
安装django-cms-search
并将haystack
和cms_search
添加到您的INSTALLED_APPS
设置中。
这应该允许您已经开始索引页面,如果没有,请发布回溯:)。
一旦您能够索引页面,现在由您决定是否要使用 apphook 或固定 url 通过 cms 管理搜索页面。
通常在使用搜索时,需要调整一些内容并添加特定于搜索的模板,为此我强烈建议在您的项目中创建一个search
应用程序,添加一个models.py
,然后将此应用程序添加到您的@987654332 @。
现在回到搜索页面,如果你选择使用 apphook,那么在你的搜索应用中,创建一个 cms_app.py
文件并添加以下内容:
from cms_search.cms_app import HaystackSearchApphook
apphook_pool.register(HaystackSearchApphook)
这会将来自 django-cms-search
的打包 apphook 注册到 cms(这在默认情况下会发生,但现在不会发生)。
否则,如果您选择不由 cms 管理的固定 url,您只需在搜索应用中添加 urls.py
即可:
from django.conf.urls import *
from haystack.views import search_view_factory
urlpatterns = patterns('search.views',
url('^$', search_view_factory(), name='haystack-search'),
)
然后在您的项目的urls.py
中,您可以将search.urls
包含在您想要的任何名称下,如下所示:
url(r'^search/', include('search.urls')),
【讨论】:
以上是关于Django CMS 搜索引擎,几个问题的主要内容,如果未能解决你的问题,请参考以下文章
django cms [aldryn newsblog] 替换插件模板