Django
समूह बनाएं
खोज…
वाक्य - विन्यास
- NewFormSet = formet_factory (SomeForm, अतिरिक्त = 2)
- formet = NewFormSet (प्रारंभिक = [{'some_field': 'फ़ील्ड मान', 'other_field': 'अन्य फ़ील्ड मान',}]]
प्रारंभिक और इकाई डेटा के साथ फ़ॉर्मेट
Formset
डेटा के ग्रिड की तरह एक पृष्ठ में कई रूपों को प्रस्तुत करने का एक तरीका है। Ex: यह ChoiceForm
कुछ प्रकार के प्रश्न के साथ जुड़ा हो सकता है। जैसे, किस उम्र के बीच बच्चे सबसे बुद्धिमान होते हैं?
appname/forms.py
from django import forms
class ChoiceForm(forms.Form):
choice = forms.CharField()
pub_date = forms.DateField()
आपके विचार में आप formset_factory
कंस्ट्रक्टर का उपयोग कर सकते हैं जो Form
को इस मामले में उसके ChoiceForm
पैरामीटर के रूप में लेता है और extra
जो यह बताता है कि इनिशियलाइज्ड फॉर्म / फॉर्म के अलावा कितने अतिरिक्त रूपों को रेंडर करने की आवश्यकता है, और आप किसी भी तरह formset
ऑब्जेक्ट पर लूप कर सकते हैं। अन्य चलने योग्य।
यदि फॉर्मेट को डेटा के साथ आरंभीकृत नहीं किया जाता है, तो यह extra + 1
बराबर रूपों की संख्या को प्रिंट करता है और यदि फॉर्मेट को इनिशियलाइज़ किया जाता है तो यह initialized + extra
प्रिंट करता initialized + extra
जहाँ आरंभीकृत के अलावा अन्य खाली फॉर्मों की extra
संख्या।
appname/views.py
import datetime
from django.forms import formset_factory
from appname.forms import ChoiceForm
ChoiceFormSet = formset_factory(ChoiceForm, extra=2)
formset = ChoiceFormSet(initial=[
{'choice': 'Between 5-15 ?',
'pub_date': datetime.date.today(),}
])
यदि आप फॉर्मेट में फॉर्मेट formset object
पर इस तरह से लूप करते हैं: फॉर्मेट (प्रिंट। form_as_table) ()
Output in rendered template
<tr>
<th><label for="id_form-0-choice">Choice:</label></th>
<td><input type="text" name="form-0-choice" value="Between 5-15 ?" id="id_form-0-choice" /></td>
</tr>
<tr>
<th><label for="id_form-0-pub_date">Pub date:</label></th>
<td><input type="text" name="form-0-pub_date" value="2008-05-12" id="id_form-0-pub_date" /></td>
</tr>
<tr>
<th><label for="id_form-1-choice">Choice:</label></th>
<td><input type="text" name="form-1-choice" id="id_form-1-choice" /></td>
</tr>
<tr>
<th><label for="id_form-1-pub_date">Pub date:</label></th>
<td><input type="text" name="form-1-pub_date" id="id_form-1-pub_date" /></td
</tr>
<tr>
<th><label for="id_form-2-choice">Choice:</label></th>
<td><input type="text" name="form-2-choice" id="id_form-2-choice" /></td>
</tr>
<tr>
<th><label for="id_form-2-pub_date">Pub date:</label></th>
<td><input type="text" name="form-2-pub_date" id="id_form-2-pub_date" /></td>
</tr>