2010-04-30 2 views
7

Ich verwende das Template-Tag regroup, um die Abfrageausgangsausgabe in einem Auswahlfeld zu gruppieren. Im Modell:Kombinieren von gruppieren mit get_foo_display in Django-Vorlagen

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

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

in der Ansicht:

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

in der Vorlage:

So type.grouper macht als 'tut' oder 'org' auf der Seite, eher als die lange Form. Normalerweise würden Sie die Syntax get_foo_display verwenden, um den Wert der Auswahl und nicht den Schlüssel zu erhalten. Aber der Wert scheint nach dem Umgruppieren nicht verfügbar zu sein. Es gibt keine Möglichkeit, get_foo_display auf {{type.grouper}} zu verwenden.

Es macht Sinn, wenn Sie darüber nachdenken, aber was ist die Problemumgehung? Vielen Dank.

Antwort

13

Was ist, wenn Sie es funktioniert tun

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

passiert! Das ist fantastisch, Daniel. Ich werde einen Dokumentationspatch dafür einreichen. – shacker

+0

Ticket und doc Patch: http://code.djangoproject.com/ticket/13452 – shacker

+0

Einfach, elegant und genau das, was ich gesucht habe. Ein Upvote scheint nicht ausreichend. –