【问题标题】:How can I access dynamically, dictionary fields in a django template?如何动态访问 django 模板中的字典字段?
【发布时间】:2012-07-17 13:55:05
【问题描述】:

我有一个 django 模板,我希望在其中显示一个字段表。我希望表包含基于数据库字段子集的不同列。显示哪些字段取决于 GET 调用(因此无法预先确定)。

我遇到的困难是我不能任意标记/排序列,然后让字段匹配。我正在使用 model.object.values 来选择我想要的列。

我尝试过的解决方案是:

  1. 遍历字典。这会以随机顺序返回字段,而且按不能保证跨数据库元素稳定的顺序返回,尽管在实践中似乎是这种情况。
  2. 使用 values_list,但是我仍然无法控制顺序,但至少它是固定的。
  3. 传递字段名称,并使用它们访问字典,但是我不知道如何使用参数调用 dict.get。我认为这是故意不可能的。
  4. 2 和 3 一起。如果没有一些丑陋的嵌套字符串比较和索引黑客,就没有明显的方法可以使这项工作。
  5. 迭代项目,这似乎需要嵌套循环来确定哪个元素进入哪个单元格。

任何帮助将不胜感激。

注意dictsort 对行进行排序,而不是对列进行排序。

【问题讨论】:

    标签: django dictionary django-templates


    【解决方案1】:

    您可以使用#3 并使用建议的模板过滤器here,或者只是在您的视图中准备数据,而不是尝试在您的模板中执行此操作。更具体地说,您可以按您选择的顺序创建列标题列表,并为数据库中的每个对象以正确的顺序创建一个值元组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-17
      • 2021-04-10
      • 2011-07-11
      • 2015-08-18
      • 2017-03-09
      相关资源
      最近更新 更多