django模板中所有保留关键字的列表?

时间:2012-01-08 23:40:06

标签: python django keyword

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

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

是否有一种获得关键字列表的程序化方法?或者是以列表格式包含所有文档的文档?

2 个答案:

答案 0 :(得分:3)

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

运行此操作

答案 1 :(得分:2)

“名单”究竟是什么意思?

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

  2. 您可以从同一页面使用JS提取它,例如:

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

    将为您提供所有标签元素;你可以从那里挑选。

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

  4. 默认模板标签&过滤器在:

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

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

    使用{%load TAG%}标记加载其他过滤器和标记。有趣的是看看加载是如何工作的,因为如果你真的想要的话,你可以很容易地破解它并用你自己的替换默认的过滤器/标签。