Django:“加载”做啥(在模板文件中)?

Posted

技术标签:

【中文标题】Django:“加载”做啥(在模板文件中)?【英文标题】:Django: what does "load" do (in a template file)?Django:“加载”做什么(在模板文件中)? 【发布时间】:2010-11-06 02:26:31 【问题描述】:

因为“加载”对于搜索来说太笼统了:

    “加载”的目的是什么?在这种特殊情况下它有什么作用? - 在模板文件中,base_weblog.html

    % load weblog %% render_month_links %

    是否有一些命名约定用于“加载”到 做它的工作?例如。文件夹和/或文件的名称和/或 类名?

    “加载”的文档在哪里,您能详细说明一下吗?


详情:

示例来自 http://www.djangoproject.com/ - 直接下载地址是 通过http://shrinkster.com/17g8。

部分文件夹结构(没有文件扩展名的项目是文件夹):

django_website

  apps
    accounts
    aggregator
    blog
      urls.py
      models.py
        class Entry(models.Model)

      templatetags
        weblog.py
    contact
    docs

  templates
    base_weblog.html

    aggregator
    blog
      entry_archive.html
      entry_archive_year.html
      month_links_snippet.html
      entry_archive_month.html
      entry_detail.html
      entry_snippet.html
      entry_archive_day.html
    comments
    contact
    docs
    feeds
    flatfiles
    flatpages
    registration

【问题讨论】:

确保 blog.templatetags 在 settings.py 的 INSTALLED_APPS 元组中。这为我解决了问题。 从 custom_filter.py 文件中加载数据 【参考方案1】:

load

加载自定义模板标签集。

更多信息请参见Custom tag and filter libraries。

【讨论】:

【参考方案2】:

“加载”之后的“weblog”(在模板文件django_website/templates/base_weblog.html 中)指的是文件夹django_website/apps/blog/templatetags 中的文件weblog.py。文件夹 templatetags 必须准确命名,并且必须包含一个名为 __init__.py 的文件(问题 2)。

“load”使自定义模板标签(在本例中为render_latest_blog_entriesrender_month_links)可用于模板中,在本例中为django_website\templates\base_weblog.html。 “加载”是一种安全和性能功能。

【讨论】:

以上是关于Django:“加载”做啥(在模板文件中)?的主要内容,如果未能解决你的问题,请参考以下文章

全局加载 Django“静态”模板标签库,而不在每个文件中显式加载它

Django模板未加载

Django - 如何将 javascript 变量从另一个文件加载到模板

Django从模板加载静态url和路径

自定义模板加载器 Django

Django/jQuery:处理模板继承和 JS 文件加载