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

2024-06-01 18:48:42 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

有没有一种程序化的方法来获取关键字列表?或者一个包含所有列表格式的文档?


Tags: djangohttpsdev引擎comref模板docs
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运行这个

你说的“清单”到底是什么意思?

  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%}标记加载。看看加载是如何工作的很有趣,因为如果你真的想的话,你可以很容易地破解它并用你自己的默认过滤器/标签替换它。

相关问题 更多 >