खोज…


वाक्य - विन्यास

  • 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>


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow