Django模板标签切片不适用于表单切片

Posted

技术标签:

【中文标题】Django模板标签切片不适用于表单切片【英文标题】:Django template tag slice not working for form slicing 【发布时间】:2018-12-24 16:57:25 【问题描述】:

这段代码有什么问题?我正在尝试对此进行切片,但它不起作用。 Django 2.x 版和 Python 3.5 版

    % for field in form|slice:":3"  %
    <tr>
        <td>
            field.label_tag 
        </td>
        <td>field</td>
    </tr>
    % endfor %

【问题讨论】:

究竟是什么不起作用?看起来应该是field.label_tag 好的,我将其更改为“字段”,我的问题是它没有对表单进行切片。整个表单都来html 【参考方案1】:

您不能直接将slice 与表单一起使用。但你可以改用form.visible_fields

% for hidden in form.hidden_fields %
 hidden 
% endfor %
% for field in form.visible_fields|slice:":3"  %
<tr>
    <td>
        field.label_tag 
    </td>
    <td>field</td>
</tr>
% endfor %

【讨论】:

非常感谢。我可以在循环 form.visible_fields 时设置隐藏字段吗?假设我想隐藏前 3 个字段并想显示其余字段?我想要它在模板中。 @SamiulSk 欢迎您!我不确定是否可以在模板中添加隐藏属性。但是您可以在特定字段的表单类中执行此操作:***.com/questions/2902008/… 实际上我正在将模型表单切片为几个步骤(页面),因此我将表单切片验证并存储在会话中的清理值并转到另一个视图(第二步)并将会话数据初始化为形式。这就是为什么我需要在模板中更改它。 @SamiulSk 试试这个解决方案:blog.joeymasip.com/…

以上是关于Django模板标签切片不适用于表单切片的主要内容,如果未能解决你的问题,请参考以下文章

将 Django 表单传递给模板标签

异步验证器不适用于 Angular 中的模板驱动表单

Django 覆盖表单 HTML 标签模板?

Spring 3 @NumberFormat 不适用于表单:输入标签

如何在 Django 模板引擎上截断/切片字符串?

如何使用 javascript(或类似的)在 Django 模板中切片列表项