2010-04-30 25 views
7

Estoy usando la etiqueta de plantilla regroup para agrupar el resultado de queryset en un campo Choices. En el modelo:Combinación de reagrupar con get_foo_display en las plantillas de Django

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

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

en la vista:

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

en la plantilla:

Así type.grouper renders como 'tut' o 'org' en la página, en lugar de la forma larga. Normalmente usaría la sintaxis get_foo_display para obtener el valor de la opción, en lugar de la clave. Pero el valor no parece estar disponible después de pasar por reagrupar. No hay forma de que encuentre el uso de get_foo_display en {{type.grouper}}.

Tiene sentido cuando lo piensas, pero ¿cuál es la solución? Gracias.

Respuesta

13

Qué pasa si

{% regroup resources by get_restype_display as resource_list %} 
+0

Funciona! Eso es fantástico Daniel. Voy a presentar un parche de documentación para esto. – shacker

+0

Ticket and doc patch: http://code.djangoproject.com/ticket/13452 – shacker

+0

Simple, elegante y exactamente lo que estaba buscando. Un voto ascendente no parece suficiente. –

Cuestiones relacionadas