在Django模板中将regroup与get_foo_display结合使用

时间:2010-04-30 00:38:40

标签: django templates

我正在使用regroup模板标记对Choices字段上的queryset输出进行分组。在模型中:

  RESOURCE_TYPES = (
      ('tut','External tutorial'),
      ('read','Additional reading'),
      ('org','Company or organization'),                         
  )

restype = models.CharField('Resource type',max_length=6,choices=RESOURCE_TYPES)

在视图中:

resources = Resource.objects.filter(tutorial=tutorial)

在模板中:

{% regroup resources by restype as resource_list %}
{% for type in resource_list %}
<h3>{{type.grouper}}</h3>

因此,type.grouper在页面上呈现为“tut”或“org”,而不是长形式。通常,您将使用get_foo_display语法来获取选择的值,而不是键。但经过重组之后,这个价值似乎无法获得。我无法在{{type.grouper}}上找到使用get_foo_display。

当你考虑它时,这是有道理的,但是解决方法是什么?感谢。

1 个答案:

答案 0 :(得分:13)

如果你这样做会怎样?

{% regroup resources by get_restype_display as resource_list %}