首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DjangoCMS,在CMS模板之外使用代码片段

DjangoCMS,在CMS模板之外使用代码片段
EN

Stack Overflow用户
提问于 2011-06-28 01:36:08
回答 3查看 1.5K关注 0票数 3

我正在尝试使用django-cms中的django-contact-form。django-contact-form有一个或两个页面(显示一个表单和一封感谢信),这些页面由django模板表示

在这些模板的左栏,我想显示一些联系我们的一般信息,这应该是可编辑的CMS。

现在,我想我可以在某个地方使用{% placeholder "contact_info" %}。但实际上并没有“联系人页面”的概念,因为contact_form应用程序已经处理了这个问题,它只提供模板(没有cms的东西)。

我的理解是,我需要创建某种假的联系页面&一个相关的模板,才能让它正常工作。

我想说的是:我想从模板中使用一个可编辑的文本片段(或者其他任何东西,但在本例中是文本)。我如何在Django-CMS中做到这一点?

顺便说一句,下面的链接似乎表明这是可能的,但不是如何可能的。

https://github.com/divio/django-cms/issues/491

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-28 01:57:22

在Django-CMS中,我知道有两种方法可以做到这一点。

一个是创建Django-CMS页面和hook your django-contact-form's urls to it

另一种方法是创建一个共享的cms页面,该页面不包含在导航中,并带有一个占位符,您可以在django-contact-form应用程序的模板中通过ID来引用它。

希望这能让你振作起来。

票数 2
EN

Stack Overflow用户

发布于 2013-08-01 05:15:47

我在this django-cms issue中找到了一个很好的解决方案。创建一个模板标记,ala something/templatetags/show_snippet_tag.py

代码语言:javascript
复制
# From https://github.com/divio/django-cms/issues/491

from cms.plugins.snippet.models import Snippet
from cms.plugins.snippet.cms_plugins import SnippetPlugin
from django import template

register = template.Library()

@register.simple_tag
def show_snippet(name):
    try:
        return SnippetPlugin().render(
            {},
            type('obj', (object,), {'snippet' : Snippet.objects.get(name = name)}),
            None
        )['content']
    except Snippet.DoesNotExist:
        return "[No snippet named '%s']" % name

然后在你的模板中,

代码语言:javascript
复制
{% load show_snippet_tag %}
{% show_snippet "My Snippet Name" %}

Kaboom。

票数 3
EN

Stack Overflow用户

发布于 2014-05-03 00:05:47

另一种想法是,如果你使用的是新的DjangoCMS 3.x,那么你也许可以更容易地使用"static_placeholder“,而不是代码片段。这样做的额外好处是,内容编辑人员可以轻松地访问和编辑每个页面上的内容,而不必转到管理界面并单独查找适当的代码片段名称。它还允许编辑人员使用更友好的WYSIWYG界面(而不是代码片段的手动代码),甚至可以添加您已添加到项目空间的表单插件。

您可以在此处查看快速文档:http://django-cms.readthedocs.org/en/latest/advanced/templatetags.html#static-placeholder

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6496658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档