Django模板继承父模板时如何正确加载渲染Django表单?
Django模板继承表单无法渲染问题解决方案
- 检查父模板
step0.html的块定义是否正确
确认step0.html中表单需要展示的位置预留了可重写的块,示例如下:
子模板<!-- step0.html 对应区域 --> {% block form_area %}{% endblock %}step1.html中必须将表单代码包裹在同名块中,不要写错块名称的大小写和拼写:
如果你需要保留父模板该块内的原有内容,需要在子模板块内第一行加上<!-- step1.html 写法示例 --> {% extends "step0.html" %} {% block form_area %} <!-- 你的Django表单代码写在这里 --> {% endblock %}{{ block.super }}。 - 检查视图是否传递了表单实例
确认step1.html对应的视图函数中,渲染模板时已经将表单实例作为上下文参数传入,示例如下:# views.py 对应视图示例 from .forms import YourCustomForm def step1_view(request): form = YourCustomForm() # 必须在render的第三个参数中传入form实例 return render(request, "step1.html", {"form": form}) - 检查表单渲染语法是否正确
确认模板中调用表单字段的语法没有错误,两种常用渲染方式示例:- 快捷渲染全部字段
{{ form.as_p }}- 手动渲染指定字段(以你提到的两个字段为例)
<div> {{ form.following_size.label_tag }} {{ form.following_size }} {{ form.following_size.errors }} </div> <div> {{ form.max_number_of_modalities.label_tag }} {{ form.max_number_of_modalities }} {{ form.max_number_of_modalities.errors }} </div> - 排查缓存问题
开启DEBUG模式的前提下,清理浏览器缓存以及Django本地模板缓存,排除旧缓存导致的模板未更新问题。
内容的提问来源于stack exchange,提问作者DobbyL
相关产品推荐
相关产品推荐

