की वर्बोज़ संस्करण मैं एक मॉडल है:Django टेम्पलेट्स: एक विकल्प
from django.db import models
CHOICES = (
('s', 'Glorious spam'),
('e', 'Fabulous eggs'),
)
class MealOrder(models.Model):
meal = models.CharField(max_length=8, choices=CHOICES)
मैं एक रूप है:
from django.forms import ModelForm
class MealOrderForm(ModelForm):
class Meta:
model = MealOrder
और मैं formtools.preview उपयोग करना चाहते हैं। डिफ़ॉल्ट टेम्पलेट, विकल्प ('शानदार अंडे' के स्थान पर 'ई') का लघु संस्करण प्रिंट क्योंकि यह
{% for field in form %}
<tr>
<th>{{ field.label }}:</th>
<td>{{ field.data }}</td>
</tr>
{% endfor %}.
का उपयोग करता है के रूप में उल्लेख मैं जनरल के रूप में एक टेम्पलेट चाहते हैं, लेकिन मुद्रण 'शानदार अंडे ' बजाय।
[के रूप में मैं संदेह था जहां असली सवाल है, मैं यह हम सभी के लिए बोल्ड :)]
मुझे पता है कि एक तरह से खुद को बदसूरत है कि में एक विकल्प के वर्बोज़ संस्करण प्राप्त करने के:
{{ form.meal.field.choices.1.1 }}
असली दर्द मेरे द्वारा चुने गए विकल्प प्राप्त करने की आवश्यकता है, और एक ही तरीका है मेरे मन में आने के विकल्प के माध्यम से पुनरावृत्ति और {% ifequals currentChoice.0 choiceField.data %}
, जो भी भद्दा है जाँच कर रहा है।
क्या यह आसानी से किया जा सकता है? या इसे कुछ टेम्पलेट टैग प्रोग्रामिंग की आवश्यकता है? क्या यह पहले से ही django में उपलब्ध नहीं होना चाहिए?
हाँ, मुझे पता है। यह सामान्य (सार्वभौमिक) के रूप में नहीं है, हालांकि - जब तक आप एक मॉडल ऑब्जेक्ट के सभी get_FOO_display विधियों पर टेम्पलेट में पुन: प्रयास करने का कोई तरीका नहीं जानते हैं :) मैं गैर-जेनेरिक टेम्पलेट्स लिखने के लिए थोड़ा आलसी हूं;) इसके अलावा, दस्तावेज़ कहते हैं कि यह एक मॉडल उदाहरण विधि है। इसलिए इसे एक मौजूदा वस्तु से बंधे मॉडल मॉडल होना चाहिए जो मामला नहीं है और सामान्य भी नहीं है। –
मैं इसे भूल रहा हूं – Sevenearths
ध्यान दें कि यह उपयोग विचारों तक ही सीमित नहीं है, get_FOO_display() मॉडल ऑब्जेक्ट पर एक विधि है ताकि आप इसे मॉडल कोड में भी उपयोग कर सकें! उदाहरण के लिए, __unicode __() में यह आपके पथ # परेशानियों/templatetags/... LOL का उल्लेख करने के लिए – Bogatyr