Django模板系统-从模板获取字段
是否有一个函数可以返回模板中需要的字段列表?例如,我有以下模板:Django模板系统-从模板获取字段,django,templates,field,Django,Templates,Field,是否有一个函数可以返回模板中需要的字段列表?例如,我有以下模板: hello i am {{ name }}. {% for i in docs %} i have doc {{ i }} 写在文件中。我想得到一个包含以下内容的dict: {'name': 'str', 'docs': 'list'} 有这样的东西吗,还是我必须自己写?据我所知,没有 您的模板包含一些html和一些占位符(可能是其他内容)。render_to_template所做的是,它获取一个上下文字典,其中包含一些键和附
hello i am {{ name }}. {% for i in docs %} i have doc {{ i }}
写在文件中。我想得到一个包含以下内容的dict:
{'name': 'str', 'docs': 'list'}
有这样的东西吗,还是我必须自己写?据我所知,没有 您的模板包含一些html和一些占位符(可能是其他内容)。
render_to_template
所做的是,它获取一个上下文字典,其中包含一些键和附加到该键和模板的一些数据。然后,它根据这些占位符的键名将值放置到这些占位符中,如果模板包含{%if…%}
或{%for…%}
如果设置中关闭了TEMPLATE\u DEBUG
,并且上下文词典中有一个没有匹配键的占位符,那么它将跳过该占位符而不会引发任何错误
另外,如果将表单对象传递给模板,并将对象直接按原样放置到模板中(不单独调用每个字段)[ex:{{form}
或{form.as{p}}
然后django将检查表单上的字段并对其进行分配。在这种情况下,您将只知道使用了该表单。您必须从表单
定义中检查使用了哪些字段
如果您仔细查看该过程,您必须知道放置上下文词典所需的内容。您可以编写一个解析器来解析模板,但我想这远比只检查模板并查找缺少的数据困难。内置的{%debug%}标签可能对你有帮助,但是我不知道我是否完全理解你的要求。基本上,如果你把调试标签放在模板中,它会打印很多有用的东西,包括模板中所有可用的变量 也许你可以看看的源代码(因为他们可以访问那里的所有变量),并建立一个基于此的标记。看看源代码,这似乎是非常简单的事情