2011-06-28 17 views
6

जेनेरिक व्यू ने मेरे लिए बहुत सारे कोड सहेजे हैं लेकिन मुझे अभी भी हर मॉडल के टेम्पलेट्स लिखना है। मैंक्या जेनेरिक विचारों जैसे जेनेरिक टेम्पलेट्स जैसे जेनेरिक विचार

<form action="/{{type}}/{{ action }}/" method="post" enctype="multipart/form-data" > 
    {% csrf_token %} 
    {% for field in form %} 
     <div class="fieldWrapper"> 
      {{ field.errors }} 
      {{ field.label_tag }}: {{ field }} 
     </div> 
    {% endfor %} 
    <p><input type="submit" value="Submit" /></p> 
    </form> 

यानी मूल रूप से मैं जोड़ना या संपादित करना मॉडल से सभी क्षेत्रों करना चाहते हैं सभी टेम्पलेट अर्थात में एक ही कोड है।

वहाँ के आसपास किसी भी काम automatrically

+1

आपको विभिन्न टेम्पलेट्स की आवश्यकता क्यों है? क्यों न सिर्फ सभी मॉडलों के लिए एक ही टेम्पलेट का उपयोग करें? आपके द्वारा दिखाए गए कोड में मॉडल-विशिष्ट कुछ भी नहीं है। –

+1

लेकिन जेनेरिक विचार ऐप/model_form.html जैसे टेम्पलेट की अपेक्षा करते हैं। ओह, मुझे स्पष्ट रूप से टेम्पलेट नाम लिखना होगा। इसलिए मैं टेम्पलेट नाम लिखने के बजाए सोच रहा था, यह स्वचालित रूप से – user2134226

+0

टेम्पलेट नाम – Arion

उत्तर

0

Django में, टेम्पलेट्स ही सामान्य हो सकता है सामान्य टेम्प्लेट है !!

आप {{form.attribute}} का उपयोग कर

Here Django Oficial डॉक है एक ही टेम्पलेट के अंदर एक मॉडल के लिए एक विभिन्न फार्म का उपयोग कर सकते हैं

+0

को स्पष्ट रूप से लिखने में समस्या क्या है, लेकिन टेम्पलेट – user2134226

+0

पर मुझे 'एक्शन "" विशेषता' में क्या लिखना चाहिए, यह इस बात पर निर्भर करता है कि आप अपना फॉर्म क्या चाहते हैं कर... – juankysmith

1

आप टेम्पलेट कोड है कि है समान है, आप उपयोग कर सकते include tag:

{% include "foo/bar.html" %} 

और शामिल कोड चर के साथ संशोधित किया जा सकता:

{% include "name_snippet.html" with person="Jane" %} 

यहां तक ​​कि अगर कोड अलग प्रत्येक टेम्पलेट के लिए (मुझे लगता है कि अपने उदाहरण नहीं यकीन है कि विभिन्न क्षेत्रों होने रूपों के बारे में बात कर रही है) है, तो आप अभी भी शामिल है का उपयोग कर सकते हैं - सिर्फ दो ब्लॉक बनाने:

{% include "startform.html with some_action="post" %} 
    {{ field.errors }} 
    {{ field.label_tag }}: {{ field }} 
    {{ field.field2_tag }}: {{ field2 }} 
{% include "endform.html %} 

template inheritance भी है, जहां आप एक मूल टेम्पलेट को परिभाषित कर सकते हैं, और आपके सभी अन्य टेम्पलेट्स इसके उत्तराधिकारी हैं। विरासत ब्लॉक-आधारित है, आप बच्चे टेम्पलेट में नए कोड के साथ मूल टेम्पलेट में ब्लॉक ओवरराइड कर सकते हैं। ये अच्छी तरह काम करता है।

0

ModelForm helper app पर देखें। यह किसी भी मॉडल से एक फॉर्म बना देगा जिसे तब एक साधारण रूप टेम्पलेट में उपयोग किया जा सकता है।

संबंधित मुद्दे