重新组合formset

时间:2011-07-25 16:04:58

标签: django

说我有一个我要传递给模板的formset。每个表单都有一个category字段,我想对其进行排序。这是我到目前为止的代码:

...
{% regroup formset by category as category_formset %}
<ul>
    {% for category in category_formset %}
    <li>{{ category.grouper }}
        <ul>
            {% for form in category.list %}
            <li>{{ form.name.value }}</li>
            {% endfor %}
        </ul>
    </li>
    {% endfor %}
</ul>
...

问题是输出如下:

  • 第1类
    • ...
  • 第2类
    • ...
  • 第2类
    • ...
  • 第3类
    • ...
  • 第3类
    • ...
  • 第3类
    • ...

也就是说,按照正确的顺序,但实际上并没有整理。我已经看过“gotcha”here并尝试添加{% regroup|dictsort:"category" ... %},但这没有帮助。有任何想法吗?或者表格集上根本不支持{% regroup %}

更新:如果我使用{% regroup formset by category.value ... %},我可以让它正确整理类别,但它只会显示整数(因为categoryForeignKey领域)。根据{{​​3}},应该可以使用{% regroup formset by get_category_display ... %}对字符串进行分类,然后regroup只返回None

1 个答案:

答案 0 :(得分:4)

所以我最终确实让它发挥作用。诀窍是使用{% regroup formset by instance.category as category_list %},它将显示明文类别名称并正确整理条目。