Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django模板系统-从模板获取字段_Django_Templates_Field - Fatal编程技术网

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%}标签可能对你有帮助,但是我不知道我是否完全理解你的要求。基本上,如果你把调试标签放在模板中,它会打印很多有用的东西,包括模板中所有可用的变量

也许你可以看看的源代码(因为他们可以访问那里的所有变量),并建立一个基于此的标记。看看源代码,这似乎是非常简单的事情