Django:访问子模板中的循环变量

Posted

技术标签:

【中文标题】Django:访问子模板中的循环变量【英文标题】:Django: Accessing for loop variable in the child template 【发布时间】:2016-11-03 05:38:51 【问题描述】:

我有一个基本模板:

base.html:

    % for object in object_list %  
            %block object_attributes% %endblock%
    % endfor %

还有一个继承它的孩子:

child.html

% extends "base.html" %

%block object_attributes% 
          block.super
          <td> object.name </td>
          <td> object.address </td>
%endblock%

然而,孩子似乎无法看到变量“object”。我知道它是 for 循环的局部变量,但我怎样才能让它对孩子可见?

【问题讨论】:

因为循环中有其他东西我没有写在这里,在许多模板之间重复。 你可以考虑为此写一个上下文处理器 【参考方案1】:

我想通了。我必须先保存循环变量才能将其传递给孩子:

base.html:

% for object in object_list %  
            % with object as object_pass %  
            %block object_attributes% %endblock%
            % endwith %
% endfor %

child.html

% extends "base.html" %

%block object_attributes% 
      block.super
      <td> object_pass.name </td>
      <td> object_pass.address </td>
%endblock%

【讨论】:

以上是关于Django:访问子模板中的循环变量的主要内容,如果未能解决你的问题,请参考以下文章

for循环中的Django模板多维数组访问

如何在 Django 模板中使用变量索引访问列表?

Django从父对象访问模板中的子数据

Django模板进阶007

如何使用Django模板在javascript中访问ajax jquery中的模板变量

你能用其他变量访问 django 模板语言中的变量属性吗?