django fluent cms的faq引擎

django-fluent-faq的Python项目详细描述


django fluent常见问题解答

这个Django应用程序为使用django-fluentCMS构建的站点添加了一个FAQ引擎

功能:

  • 多语言
  • 多站点
  • 类别和问题
  • 搜索引擎优化字段(元关键字,描述)

使用的应用程序:

安装

首先,最好在虚拟环境中安装模块:

git clone https://github.com/edoburu/django-fluent-faq.git
cd django-fluent-faq
pip install .

# Install the plugins of fluent-contents that you use:
pip install django-fluent-contents[text]# Optional: to add tagging support + autocomplete use:
pip install django-taggit django-taggit-autocomplete-modified

配置

将应用程序添加到settings.py

INSTALLED_APPS+=(# FAQ engine'fluent_faq',# The content plugins'fluent_contents','fluent_contents.plugins.text',# Support libs'categories','categories.editor','django_wysiwyg',# Optional tagging'taggit','taggit_autocomplete_modified',)DJANGO_WYSIWYG_FLAVOR="yui_advanced"

注意并非所有申请都是必需的; 标记是可选的,各种fluent_contents.plugin.*包也是可选的。

将应用程序包含在urls.py

urlpatterns+=patterns('',url(r'^admin/util/taggit_autocomplete_modified/',include('taggit_autocomplete_modified.urls')),url(r'^faq/',include('fluent_faq.urls')),)

之后可以创建数据库:

./manage.py syncdb

如果使用了django-fluent-contents的其他插件,请遵循 installation instructions还有。 通常包括:

  • 正在将包名称添加到INSTALLED_APPS
  • 正在运行pip install django-fluent-contents[pluginname]
  • 正在运行./manage.py syncdb

配置允许的插件

要限制在常见问题解答中可以使用的django-fluent-contents插件,请使用:

FLUENT_CONTENTS_PLACEHOLDER_CONFIG={'faq_answer':{'plugins':('TextPlugin','PicturePlugin','OEmbedPlugin','SharedContentPlugin','RawHtmlPlugin',),},}

配置模板

要显示博客内容,需要创建一个fluent_faq/base.html文件。 这将用于将模块的输出映射到站点模板。

基本模板需要具有块:

  • content-显示主要内容
  • sidebar_content-显示边栏内容
  • title-要插入到<title>标记的标题片段
  • meta-title-标记<title>的全部内容。
  • meta-description-元描述标记的value
  • meta-keywords-元关键字标记的value
  • og-type-Facebook的OpenGraph类型(可选)
  • og-descriptionFacebook的OpenGraph描述(可选)

fluent_faq/base.html模板可以简单地将块名重新映射到站点的base.html模板。 例如:

{%extends"base.html"%}{%blockheadtitle%}{%blocktitle%}{%endblock%}{%endblock%}{%blockmain%}{# This area is filled with the question details:
    {% block content %}{% endblock %}

    {# Add any common layout, e.g. a sidebar here #}{%blocksidebar_content%}{%endblock%}{%endblock%}

当站点的base.html模板中已存在所有其他块名时, 这个例子应该足够了。

向站点地图添加页面

或者,博客页面可以包含在站点地图中。 在urls.py中添加以下内容:

fromfluent_faq.sitemapsimportFaqQuestionSitemap,FaqCategorySitemapsitemaps={'faq_questions':FaqQuestionSitemap,'faq_categories':FaqCategorySitemap,}urlpatterns+=patterns('',url(r'^sitemap.xml$','django.contrib.sitemaps.views.sitemap',{'sitemaps':sitemaps}),)

与django fluent页面集成:

要与django-fluent-pages的页面类型集成,请不要在urlconf中包含fluent_blogs.urls

urlpatterns+=patterns('',url(r'^admin/util/taggit_autocomplete_modified/',include('taggit_autocomplete_modified.urls')),)

请改为添加页面类型:

INSTALLED_APPS+=('fluent_pages','fluent_faq.pagetypes.faqpage',)

现在可以在django-fluent-pages的页面树中创建“FAQ模块”页面 在所需的URL路径

贡献

这个模块被设计成通用的,并且很容易插入您的站点。 万一你有什么不喜欢的,或者认为不是 够灵活的,请告诉我们。我们很乐意改进它!

如果你有其他有价值的贡献、建议或想法, 请也让我们知道,因为我们会调查的。 也欢迎拉取请求。:-)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Kafka producer大量内存使用(泄漏?)   java NullPointerException。。。正在插入数据但无法检索数据[Mysql DB]   java spring+jpa+hibernate=没有可用于当前线程的实际事务的EntityManager无法可靠地处理“persist”调用   getelementbyid在没有ID的情况下如何在java中使用GetElementsById   java有没有一种使用WatchService强制轮询的方法?   java将值从jframe传递给另一个jframe并使用它   Java/Groovy中带重试的反应式事件处理   具有两个包装器元素的java Jackson XML ArrayList输出   java总是在范围内使用不同的随机元素   取消选择java下拉列表值   多线程如何在Java中为对象的不同成员拥有不同的同步块   java如何使用多线程从文本文件中读取输入   java Spring启动附加崩溃命令   java使用公共或单独的actionPerfomed方法有什么区别   java用Spring3.0中的SpEL替换JSP中的EL   java作为windows服务运行应用程序时无法访问共享文件夹   java xml 1.1规范中的“解析数据”是什么意思?   以编程方式设置JComboBox索引时java触发ItemListener   java Android WebView:只加载HTML,不加载JS或CSS(在某些设备中)   Java:计算do/while循环的数量