如何在django模板中动态访问字典字段?

时间:2012-07-18 13:48:04

标签: django dictionary django-templates

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

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

我尝试的解决方案是:

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

    N.B。 dictsort排序行,而不是列。

1 个答案:

答案 0 :(得分:0)

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