代码之家  ›  专栏  ›  技术社区  ›  shacker kravietz

在django模板中结合使用regroup和get foo_display

  •  7
  • shacker kravietz  · 技术社区  · 14 年前

    我正在使用 regroup 模板标记,用于在选项字段上对查询集输出进行分组。在模型中:

      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 语法来获取选择的值,而不是键。但经过重新组合后,该值似乎不可用。我找不到使用get foo_display on type.grouper的方法。

    当你想到它的时候,它是有意义的,但是解决方法是什么?谢谢。

    1 回复  |  直到 14 年前
        1
  •  13
  •   Daniel Roseman    14 年前

    如果你这样做会怎么样

    {% regroup resources by get_restype_display as resource_list %}