是否有一个函数可以返回模板中预期的字段列表?例如,我有以下模板:
hello i am {{ name }}. {% for i in docs %} i have doc {{ i }}
写在档案里。我想得到一个包含:
{'name': 'str', 'docs': 'list'}
有类似的东西还是我必须自己写?
据我所知,没有......
您的模板包含一些 html 和一些占位符(可能是其他内容)。所做的是render_to_template
,它获取一个上下文字典,其中包含一些键和一些附加到该键的数据和一个模板。然后它根据它们的键名将值放置到这些占位符中,执行一些循环或条件检查,如果您的模板包含控制流,例如{% if...%}
或{%for....%}
如果TEMPLATE_DEBUG
在您的设置中关闭,并且如果在您的上下文字典中有一个没有匹配键的占位符,那么它将跳过它而不会引发任何错误。
此外,如果您将表单对象传递给您的模板并将您的对象直接放置到模板中(而不单独调用每个字段)[例如:{{form}}
或者{{form.as_p}}
然后 django 将检查表单上的字段并按此处显示的方式放置它们。在这种情况下,您只会知道使用了表单。您必须检查Form
定义中使用了哪些字段。
如果您查看该过程,您必须知道放置上下文字典所需的内容。您可能会编写一个解析器来解析您的模板,但我想这比仅仅检查模板并找到丢失的数据要困难得多。