Tôi có một mô hình:
from django.db import models
CHOICES = (
('s', 'Glorious spam'),
('e', 'Fabulous eggs'),
)
class MealOrder(models.Model):
meal = models.CharField(max_length=8, choices=CHOICES)
Tôi có một hình thức:
from django.forms import ModelForm
class MealOrderForm(ModelForm):
class Meta:
model = MealOrder
Và tôi muốn sử dụng formtools.preview. Mẫu mặc định in phiên bản ngắn của sự lựa chọn ('e' thay vì 'Trứng tuyệt vời'), vì nó sử dụng
{% for field in form %}
<tr>
<th>{{ field.label }}:</th>
<td>{{ field.data }}</td>
</tr>
{% endfor %}.
Tôi muốn một mẫu chung chung như đã đề cập, nhưng in 'Trứng tuyệt vời' thay vào đó.
[như tôi đã nghi ngờ đâu là câu hỏi thực sự, tôi đã in đậm nó cho tất cả chúng ta :)]
Tôi biết làm thế nào để có được phiên bản dài dòng của một lựa chọn theo cách mà bản thân nó xấu xí:
{{ form.meal.field.choices.1.1 }}
Nỗi đau thực sự là tôi cần có được sự lựa chọn, và cách duy nhất nảy ra trong đầu tôi là lặp đi lặp lại thông qua các lựa chọn và kiểm tra {% ifequals currentChoice.0 choiceField.data %}
, thậm chí còn xấu hơn.
Nó có thể được thực hiện dễ dàng? Hoặc nó cần một số lập trình thẻ mẫu? Không nên có sẵn trong django?