我需要一个django的模板引擎使用的所有保留关键字的列表。大多数关键字都可以在这里找到:
https://docs.djangoproject.com/en/dev/ref/templates/builtins/
是否有一种获得关键字列表的程序化方法?或者是以列表格式包含所有文档的文档?
答案 0 :(得分:3)
django过滤器和标签在您提供的链接的文档中定义 - 并且记录是由Stefano建议的代码defaultfilters.py
代码自动创建的(我认为使用sphinx)。
如果有帮助,那么查看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
答案 1 :(得分:2)
“名单”究竟是什么意思?
您可以通过从链接的文档页面复制粘贴来提取它;
您可以从同一页面使用JS提取它,例如:
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%}标记加载其他过滤器和标记。有趣的是看看加载是如何工作的,因为如果你真的想要的话,你可以很容易地破解它并用你自己的替换默认的过滤器/标签。