Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Wagtail在admin上自定义结构块模板_Django_Wagtail - Fatal编程技术网

Django Wagtail在admin上自定义结构块模板

Django Wagtail在admin上自定义结构块模板,django,wagtail,Django,Wagtail,我已经阅读了文档中的“structblock的自定义编辑界面”部分。然后我写了: settings = StructBlock([ ('width', blocks.CharBlock(required=False, max_length=20 ) ), ('background_color', blocks.CharBlock(max_length=10, required=False)) ], form_template =

我已经阅读了文档中的“structblock的自定义编辑界面”部分。然后我写了:

 settings = StructBlock([
            ('width', blocks.CharBlock(required=False, max_length=20 ) ),
            ('background_color', blocks.CharBlock(max_length=10, required=False))
        ],  form_template = 'personal_web/admin_blocks/section_settings.html' )
我已经将wagtail/admin/templates/wagtailadmin/block_forms/struct.html中的代码复制到我的自定义结构模板中,以便更好地进行自定义

---my section_settings.html---


{%if help_text%}
{{help_text}}
{%endif%}
    {children.values%} {%if child.block.label%} {{child.block.label}: {%endif%} {{child.render_form} {%endfor%}
在管理员界面上出现错误:

“内置函数”或“方法”对象不可编辑。。。在template/Users/burakk/BurakWorks/Web/VIRTUAL_ENVIRONMENTS/python3.6.1_dj_11/lib/python3.6/site-packages/wagtail/wagtailadmin/templates/wagtailadmin/block_forms/sequence_member.html中,第23行出现错误

顺便说一下,我使用jinja作为模板渲染器,django 1.11.6,python 3.6

我检查了一下这是否是jinja2的问题,我已经更改了children.values属性children.values()等

现在在管理员界面上,我看到所有元素都是“html字符串”,而不是实际的输入字段


谢谢

我认为这可能是因为您的
节设置.html
模板位于通常用于jinja2模板的位置内-可能是
某些应用程序/jinja2/personal\u web/admin\u blocks/section\u设置.html
(如果您使用的配置如所示)-并最终被解释为Jinja2模板。以这种方式混合Jinja2和Django模板是未经测试的,并且可能以不可预知的方式失败(如您所看到的HTML被双重转义)


尝试将其移动到
某些应用程序/模板/personal\u web/admin\u blocks/section\u settings.html
,将模板更改回Django语法(
children.values()
更改回
children.values
,等等).

您的
部分设置.html
模板是否与wagtail/admin/templates/wagtailadmin/block\u forms/struct.html完全相同?如果没有,请张贴您的模板代码。请注意,您不能将jinja2用于此模板-Wagtail管理员始终将Django模板引擎用于其模板,而不管您在站点前端使用的是什么。我已使用部分_settings.html代码编辑了我的帖子。由于错误,我不得不将children.values改为children.values()。。。但我的模板在我的应用文件夹中。。。我没有用wagtail模板路径结构覆盖wagtail struct.html模板。这是原因吗?“这是原因吗”-好吧,有一个简单的方法来找出!删除它,看看问题是否仍然存在。不,这不是原因,如果我清空了_settings.html部分并在管理员上写一个“div”,例如,它呈现为html字符串而不是实际的html元素?
<div class="{{ classname }}">
    {% if help_text %}
        <div class="object-help help">{{ help_text }}</div>
    {% endif %}

    <ul class="fields">
        {% for child in children.values %}
            <li{% if child.block.required %} class="required"{% endif %}>
                {% if child.block.label %}
                    <label{% if child.id_for_label %} for="{{ child.id_for_label }}"{% endif %}>{{ child.block.label }}:</label>
                {% endif %}
                {{ child.render_form }}
            </li>
        {% endfor %}
    </ul>
</div>