gpt4 book ai didi

django-cms - Django CMS 自定义插件不呈现模板

转载 作者:行者123 更新时间:2023-12-02 05:01:27 29 4
gpt4 key购买 nike

运行 django-cms 2.4.0-RC1、django 1.5.1 和 python 2.7 的全新安装。我正在尝试使用单个字段创建一个非常简单的自定义插件。该插件在管理员中注册并且工作正常。它成功地存储在数据库中。它只是没有在我的模板中呈现。

我已验证 render_template 路径并尝试使用硬编码的绝对路径。我已经尝试覆盖 CMSSelectDegreeLevelPlugin 中的渲染方法。

我是否忽略了一些明显的东西?我以前制作过非常相似的插件(在不同版本的 django-cms 中)并且没有遇到任何问题。

模型.py:

from cms.models.pluginmodel import CMSPlugin
from django.db import models


class SelectDegreeLevel(CMSPlugin):
degree_level = models.CharField('Degree Level', max_length=50)

cms-plugins.py

from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from django.utils.translation import gettext_lazy as _
from models import SelectDegreeLevel


class CMSSelectDegreeLevelPlugin(CMSPluginBase):
model = SelectDegreeLevel
name = _('Degree Level')
render_template = "cms/plugins/select_degree_level.html"

plugin_pool.register_plugin(CMSSelectDegreeLevelPlugin)

select_degree_level.html

<h1>static text test {{ instance.degree_level }}</h1>

最佳答案

我认为您的字段不在上下文中。我通常通过这种方式进行。将此功能添加到您的 CMSSelectDegreeLevelPlugin 类

# Way to decide what comes in the context
def render(self, context, instance, placeholder):
extra_context = {
'degree_level': instance. degree_level,
}
context.update(extra_context)
return context

# Simplest Way
def render(self, context, instance, placeholder):
context['instance'] = instance
return context

Also you can read more here in docs

关于django-cms - Django CMS 自定义插件不呈现模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15977210/

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