Django模板中包含第二个HTML模板时出现递归错误
你好。我刚刚完成我的第一个Django项目,而且进展顺利。但是,在另一个应用程序中包含HTML模板时,我遇到了一个小问题 我希望有一个显示所有表单错误的单一文件,这样我就不必在每个表单中反复编写相同的内容。所以,我有一个小模板: my_app/form_error_messages.html:Django模板中包含第二个HTML模板时出现递归错误,django,python-3.x,django-templates,Django,Python 3.x,Django Templates,你好。我刚刚完成我的第一个Django项目,而且进展顺利。但是,在另一个应用程序中包含HTML模板时,我遇到了一个小问题 我希望有一个显示所有表单错误的单一文件,这样我就不必在每个表单中反复编写相同的内容。所以,我有一个小模板: my_app/form_error_messages.html: {%if form.non_字段_错误%} &时代; {{form.non_field_errors}} {%endif%} {表单中的字段为%hidden_fields%} {%if field.err
{%if form.non_字段_错误%}
&时代;
{{form.non_field_errors}}
{%endif%}
{表单中的字段为%hidden_fields%}
{%if field.errors%}
&时代;
{{field.label}}:{{field.errors}
{%endif%}
{%endfor%}
{%form.visible_fields%}
{%if field.errors%}
&时代;
{{field.label}}:{{field.errors}
{%endif%}
{%endfor%}
在我的其他每个模板上,我都有如下内容:
my_app/other_template_file.html
{%extends“base.html”%}
{%block“my_block”%}
{%include'my_app/general_info.html%}
{%csrf_令牌%}
{%include“my_app/form_error_messages.html”%}
{{form.as_p}}
{%endblock%}
我的应用程序/views.py
def my_视图(请求):
如果request.method==“POST”:
form=MyEntryForm(request.POST)
如果form.is_有效():
form.save()
返回HttpresponseRedirect(反向('my_app:index'))
其他:
form=MyEntryForm()
返回呈现(请求'my_app/other_template_file.html',{'form':form})
我的应用程序/forms.py
def MyEntryForm(forms.ModelForm):
类元:
model=MyModel
字段='\uuuu所有\uuuu'
my_app/models.py
类MyModel(models.Model):
title=models.CharField(最大长度=100,db\u索引=True)
text=models.TextField()
相关文件结构:
myu项目/
|
+--我的计划/
| |
|+--\uuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
|+--settings.py
|+--url.py
|+--wsgi.py
|
+--我的应用程序/
| |
|+--\uuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
|+--forms.py
|+--models.py
|+--url.py
|+--views.py
|+--模板/
| |
|+--我的应用程序/
| |
|+--other_template_file.html
|+--form_error_messages.html
|
+--模板/
|
+--base.html
相关设置:
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(u文件_uu)))
TEMPLATES\u DIR=os.path.join(BASE\u DIR,'TEMPLATES')
# ...
模板=[
{
'BACKEND':'django.template.backends.django.DjangoTemplates',
'DIRS':[TEMPLATES_DIR,],
“应用程序目录”:正确,
“选项”:{
“上下文处理器”:[
“django.template.context_processors.debug”,
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
在包含my\u app/form\u error\u messages.html之前,一切正常,但在我包含它之后,Django在尝试打开任何包含表单(包含该文件)的页面时显示以下错误:
递归错误位于/my\u app/other\u template\u file.html
超过最大递归深度
我想我做的一切都是对的,但是。。。我错过什么了吗
我的具体问题是:
Django为什么抱怨递归
如何使上述模板按预期工作?
具体来说:我需要一个“通用”模板来显示所有表单错误,并将其包含在我的其他模板中
一般信息:
- Python:3.6
- Django:2.0
- 在投入生产之前,我正在使用开发服务器进行测试
编辑1:
Django显示的堆栈跟踪超过2K行!(我认为完整地发布在这里是个坏主意)。但是,我在这里列出了堆栈跟踪的一些行:
模板错误:
在模板D:\Users\MBARRANCA\AppData\Local\Continuum\Anaconda3\lib\site packages\django\forms\templates\django\forms\widgets\attrs.html中,第1行出现错误
超过最大递归深度
1:{%for name,widget.attrs.items%}{%if值不是False%}{{name}}{%if值不是True%}=“{{value}stringformat:'s'}{%endif%}{%endif%}{%endif%}{%endfor%}”
回溯:
翻译令牌中的文件“D:\Users\MBARRANCA\AppData\Local\Continuum\Anaconda3\lib\site packages\django\template\smartif.py”
175op=运算符[令牌]
在处理上述异常(“值”)期间,发生了另一个异常:
_uuinit中的文件“D:\Users\MBARRANCA\AppData\Local\Continuum\Anaconda3\lib\site packages\django\template\base.py”__
767self.literal=float(var)
在处理上述异常期间(无法将字符串转换为float:“value”),发生了另一个异常:
文件“D:\Users\MBARRANCA\AppData\Local\Continuum\Anaconda3\lib\site packages\django\core\handlers\exception.py”位于内部
35响应=获取响应(请求)
get响应中的文件“D:\Users\MBARRANCA\AppData\Local\Continuum\Anaconda3\lib\site packages\django\core\handlers\base.py”
128response=self.process\u异常\u由\u中间件(e,请求)
get响应中的文件“D:\Users\MBARRANCA\AppData\Local\Continuum\Anaconda3\lib\site packages\django\core\handlers\base.py”
126响应=包装的回调(请求,*回调参数,**回调参数)
文件“D:\Users\MBARRANCA\AppData\Local\Continuum\Anaconda3\lib\site packages\django\contrib\auth\decorators.py”位于\u wrapped\u视图中
21返回视图功能(请求,*args,**kwargs)
cargar_archivo_leads_v2中的文件“D:\Users\MBARRANCA\Documents\PythonProjects\my_projects\project01\my_django_project\my_app\views.py”
652返回呈现(请求'leads/cargar_archivo_leads.html',{'form':form})
文件“D:\Use