2012-01-08 96 views
2

我需要django的模板引擎使用的所有保留关键字的列表。大多数这些关键字可以在这里找到:django模板中所有保留关键字的列表?

https://docs.djangoproject.com/en/dev/ref/templates/builtins/

有没有得到只是一个关键字列表的编程方法?或者以列表格式包含所有这些文档的文档?

+2

运行此这些都不是“保留关键字”,他们只是由Django的本身提供的标签和过滤器。 – 2012-01-09 00:25:41

+2

我已经创建了dandonovan的(稍微修改)程序的输出的pastebin:http://pastebin.com/82CyecW2 – zzz 2012-01-09 03:23:50

回答

2

django过滤器和标签在您提供的链接的文档中定义 - 并且自动从Stefano建议的代码defaultfilters.py代码创建文档(使用sphinx我认为)。

如果有帮助,那么查看admindocsadmindocs)应用程序会给您更准确的描述,因为它还会包含您定义的任何自定义标签和过滤器。

from django.contrib.admindocs.views import load_all_installed_template_libraries 
from django import template 

app_libs = template.libraries.items() 
builtin_libs = [(None, lib) for lib in template.builtins] 

for module_name, library in builtin_libs + app_libs: 
    for tag_name, tag_func in library.tags.items(): 
     print 'Tag: ', tag_name 
    for filter_name, filter_func in library.filters.items(): 
     print 'Filter: ', filter_name 

你必须从django-admin.py shellpython manage.py shell

2

你是什么意思的“名单”?

  1. 您可以通过从链接的文档页复制粘贴来提取它;

  2. 您可以从同一个页面JS提取出来,如:

    document.querySelectorAll('a[href="#built-in-tag-reference"] ~ ul > li > a')

    将让你所有的标记元素;你可以从那里挑选它。

  3. 或者你可以使用django的python代码;

默认模板标签&过滤器下:

/django/templates/defaultfilters.py 
/django/templates/defaulttags.py 

如果你能更好地解释你的目标是什么,你可能会得到更多的相关答案;无论如何,我认为从django python代码开始应该让你更接近你想要的结果。

使用{%load TAG%}标记加载其他过滤器和标记。看看加载是如何工作是很有趣的,因为如果你真的想要的话,你可以轻松地使用它来替代默认的filters/tags。

+0

我的目标是获取关键字,因为我正在为[SHPAML]写一个语法colorer/highlighter(http: //shpaml.webfactional.com/)和django的[colorer](http://colorer.sourceforge.net/)eclipse插件。我需要django的保留关键字列表,这样我才能突出显示django模板标记{%%}中的保留字。 – zzz 2012-01-09 02:22:21

+0

@EricGustavson在这种情况下,这些方法中的任何一种都可以工作并且同样快速......您只需要一个静态过滤器和标签列表,或者使用基本上从我的建议#3开始的danodonovan代码! – Stefano 2012-01-09 02:30:25