如何使用变量获取 Django 模板中另一个变量的属性

How to use variable to get attributes of another another variable in Django templates

我正在尝试使用指定的列和行填充 Django 模板中的 CSS 网格。据我所知,我需要在 Django 模板中做一些类似于“嵌套变量”的事情来实现我正在寻找的东西。我试过这个,但它不起作用:

   {% for parent_row in parent_rows %}
      {{ parent_row }}
      <div>p1</div>
      <div>p2</div>
      {% for child_row in children_rows %}
         <div> {{ child_row}} </div>
         {% for guy in guys %}
            <input type=”text” value=”{{guy}}.{{child_row}}”></input>
         {% endfor %}
      {% endfor %}
   {% endfor %}

{{guy}}.{{child_row}} 我试过的一些类似变体都不起作用。我设法通过将整个 HTML 打开,然后在不同的行上遍历每个人来获得我正在寻找的结果,例如我可以使用 guy.name 来获得所需的值到每一行,但这意味着很多重复。

parent_rows 可能看起来像这样,例如:

“names”, “contact_information”, “hobbies”
例如,

children_rows 可能看起来像这样:

“forename”, “family_name”, “phone_number”, “mail”, “favourite_hobby”

两个人的记录是这样的(为了便于说明,它们都是相同的):

“forename”: “Mike”
“family_name”: “McMediocre”
“phone_number”: “123”
“mail”: “mike@mediocre.com”
“favourite_hobby”: “tennis”

我正在尝试将网格填充为如下所示:

col1 col2 col3
names p1 p2
forename Mike Mike
family_name McMediocre McMediocre
contact_information p1 p2
phone_number 123 123
mail mike@mediocre.com mike@mediocre.com
hobbies p1 p2
favourite_hobby tennis tennis

编辑:从 找到了我的问题的答案。接受的答案对我的情况也很有用。

找到了我的问题的答案。

已接受的答案(自定义模板过滤器)对我的情况也很有用。我所做的是:

  1. 在 MyApp

    下创建了目录 templatetags
  2. 在该目录

    创建了一个名为 customtemplatetag.py 的文件
  3. 从链接 post:

    复制粘贴片段

    从 django 导入模板

    注册 = template.Library()

    @register.filter def get_obj_attr(obj, 属性): return getattr(obj, attr)

  4. 已将 {% load mytemplatetag %} 添加到我的模板

  5. 在模板中使用了{{guy|get_obj_attr:child_row}}