Django模板中所有保留关键字的列表?
我需要一份Django模板引擎使用的所有保留关键字的列表。这些关键字大部分可以在这里找到:
https://docs.djangoproject.com/en/dev/ref/templates/builtins/
有没有什么方法可以程序化地获取这些关键字的列表?或者有没有一份文档包含所有关键字的列表格式?
2 个回答
2
你说的“列表”具体指什么呢?
你可以直接从你链接的文档页面复制粘贴来获取它;
你也可以用JavaScript从同一个页面提取,比如:
document.querySelectorAll('a[href="#built-in-tag-reference"] ~ ul > li > a')
这个代码可以帮你获取所有的标签元素;你可以从中选择你需要的。
或者你可以使用Django中的Python代码;
默认的模板标签和过滤器在这里:
/django/templates/defaultfilters.py
/django/templates/defaulttags.py
如果你能更清楚地说明你的目标是什么,可能会得到更相关的回答;无论如何,我觉得从Django的Python代码入手应该能让你更接近想要的结果。
额外的过滤器和标签可以通过{% load TAG %}标签来加载。看看加载的过程很有趣,因为如果你真的想的话,你可以轻松地修改它,把默认的过滤器/标签换成你自己的。
3
Django的过滤器和标签在你提供的链接的文档中有说明,这些文档是自动生成的,可能是用一种叫做sphinx的工具,从Stefano提到的代码defaultfilters.py
中生成的。
如果你觉得有帮助,可以查看admindocs
(admindocs)这个应用,它会给你更准确的描述,因为它还会包含你自己定义的任何自定义标签和过滤器。
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 shell
或者python manage.py shell
来运行这个命令。