gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:10:36 26 4
gpt4 key购买 nike

我正在尝试在 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

最佳答案

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

# 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

然后在您的模板中,

{% load show_snippet_tag %}
{% show_snippet "My Snippet Name" %}

轰隆隆。

关于DjangoCMS,在 CMS 模板之外使用片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6496658/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com