Ich habe ein Modell:
from django.db import models
CHOICES = (
('s', 'Glorious spam'),
('e', 'Fabulous eggs'),
)
class MealOrder(models.Model):
meal = models.CharField(max_length=8, choices=CHOICES)
Ich habe ein Formular:
from django.forms import ModelForm
class MealOrderForm(ModelForm):
class Meta:
model = MealOrder
Und ich möchte formtools.preview verwenden. Die Standardvorlage druckt die Kurzversion der Auswahl ('e' anstelle von 'Fabulous Eggs'), da sie verwendet wird
{% for field in form %}
<tr>
<th>{{ field.label }}:</th>
<td>{{ field.data }}</td>
</tr>
{% endfor %}.
Ich hätte gerne eine Vorlage, die so allgemein ist wie die erwähnte, aber stattdessen 'Fabulous Eggs' druckt.
[Da ich Zweifel hatte, wo die eigentliche Frage ist, habe ich sie für uns alle kühn gemacht :)]
Ich weiß, wie man die ausführliche Version einer Wahl auf eine Weise erhält, die selbst hässlich ist:
{{ form.meal.field.choices.1.1 }}
Der wahre Schmerz ist, dass ich die ausgewählte Wahl treffen muss, und der einzige Weg, der mir in den Sinn kommt, besteht darin, durch Entscheidungen und Überprüfungen zu iterieren {% ifequals currentChoice.0 choiceField.data %}
, was noch hässlicher ist.
Kann es leicht gemacht werden? Oder braucht es eine Template-Tag-Programmierung? Sollte das nicht schon in Django verfügbar sein?