पर आधारित एक प्रारूप को कैसे सहेजना है मुझे डेटाबेस में एक फॉर्मेट सहेजने में मुश्किल हो रही है। मैं 2 मॉडल, एक दूसरे के लिए एक ForeignKey होने (मैं Django व्यवस्थापक पृष्ठ बलांता मॉडल के लिए कुछ प्रविष्टियों बनाया) है:Django: दो मॉडल
models.py
class Balanta(models.Model):
data=models.DateField()
class Meta:
ordering=['data']
verbose_name_plural="Balante"
def __unicode__(self):
return unicode(self.data)
class Conturi(models.Model):
cont=models.PositiveIntegerField()
cont_debit=models.DecimalField(default=0, max_digits=30, decimal_places=2)
cont_credit=models.DecimalField(default=0, max_digits=30, decimal_places=2)
balanta=models.ForeignKey(Balanta)
class Meta:
#ordering=['cont']
verbose_name_plural="Conturi"
def __unicode__(self):
return unicode(self.cont)
अगले मैं एक forms.py बनाया:
from sitfin.models import Conturi, Balanta
from django.forms import ModelForm
class BalantaForm(ModelForm):
class Meta:
model=Balanta
class ConturiForm(ModelForm):
class Meta:
model=Conturi
और views.py:
from django.http import HttpResponseRedirect
from django.shortcuts import get_object_or_404, render_to_response
from django.template import RequestContext
from sitfin.models import Balanta, Conturi
from sitfin.forms import BalantaForm, ConturiForm
from django.forms.formsets import formset_factory
def conturi_index(request):
return render_to_response('sitfin/conturi_index.html',{'conturi_list':Conturi.objects.all()})
def conturi_introducere(request):
ConturiFormSet=formset_factory(ConturiForm)
if request.method=='POST':
#form=ConturiForm(data=request.POST)
conturi_formset=ConturiFormSet(request.POST, request.FILES)
#if form.is_valid():
if conturi_formset.is_valid():
for form in conturi_formset.cleaned_data:
balanta=Balanta(data=form['data'])
balanta.save()
cont=Conturi(cont=form['cont'])
cont.save()
return HttpResponseRedirect("sitfin/conturiok")
else:
#form=ConturiForm()
conturi_formset=ConturiFormSet()
#return render_to_response('sitfin/conturi_introducere.html',{'form':form})
return render_to_response('sitfin/conturi_introducere.html',{'conturi_formset':conturi_formset}, context_instance=RequestContext(request))
और टेम्पलेट:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Conturi_introducere</title>
</head>
<body>
<p>BAGA CONTURILE</p>
<form action="" method="post">{% csrf_token %}
{{ conturi_formset.management_form }}
<table border="0">
{% for cform in conturi_form %}
{{ cform }}
{% endfor %}
</table>
<p><input type="submit" value="Submit"></p>
</form>
</body>
</html>
मैं एक रूप है जो Conturi मॉडल में क्षेत्रों के साथ एक formset (बलांता मॉडल के लिए विदेशी कुंजी के साथ) है के लिए प्रबंधन और बलांता मॉडल, लेकिन जब में फ़ील्ड के नीचे मैं सबमिट दबाता हूं मुझे KeyError 'डेटा' मिलता है। यह इस चरण में त्रुटि है, लेकिन मुझे त्रुटियां मिलती हैं जिन्हें मैं संतुलित करने में कामयाब रहा हूं जैसे balanta_id शून्य नहीं हो सकता है, या प्रबंधन_form के साथ छेड़छाड़ करने के बारे में कुछ नहीं।
मैं ड्रॉप-डाउन से चुनने वाली तारीख के आधार पर कंटुरी फॉर्मेट को सहेजना चाहता हूं (तारीख प्रीपोप्टेड है लेकिन मैं इसे हाथ से भी दर्ज कर सकता हूं) और बाद में विकास में मैं एक jquery जोड़ने की कोशिश करूंगा फॉर्म में अधिक कंटूर फ़ील्ड जोड़ने के लिए और इसके बाद डेटाबेस में सभी फॉर्मेट को सहेजने के लिए, लेकिन यह मेरी समस्या से बहुत दूर है।
आपको बहुत बहुत धन्यवाद!
धन्यवाद! तो मुझे 2 अलग-अलग ifs में सत्यापन करना चाहिए? – Kaigara
मैंने इसे आदमी किया, तुम चट्टान! मैं आपके उत्तर के आधार पर डेटाबेस में दोनों रूपों/स्वरूपों के लिए डेटा को सहेजने का प्रबंधन करता हूं।^- ^ – Kaigara