即使表单中的值为空,我如何保存数据? [英] How can I save the data even if their value in a form is null?
问题描述
如果我没有填写annoinizio或annofine或stagioni或totepisodi的表单,django玩form.is_valid()并返回False。
如何保存数据,即使它们的值为空?
模型:
div class =snippetdata-lang =jsdata-hide =false>
class Tvserie(models.Model):titolo = models.CharField(max_length = 100)titolo_originale = models.CharField(max_length = 200)annoinizio = models.IntegerField(null = True,blank = True)annofine = models .IntegerField(null = True,blank = True)stagioni = models.IntegerField(null = True,blank = True)totepisodi = models.IntegerField(null = True,blank = True)
视图:
class ContactForm(forms.Form):titolo = forms.CharField()titolo_originale = forms.CharField()annoinizio = forms.CharField ()annofine = forms.CharField()stagioni = forms.CharField()totepisodi = forms.CharField()def nuovaserie(request):if request.method =='POST':form = ContactForm(request.POST)if form。 is_valid():titolo = request.POST.get('titolo','')titolo_originale = request.POST.get('titolo_originale','')annoinizio = request.POST.get('annoinizio','')annofine = request.POST.get('annofine','')stagioni = request.POST.get('stagioni','')totepisodi = request.POST.get('totepisodi','')cont_obj = Tvserie.objects。 create(titolo = titolo,titolo_originale = titolo_originale,annoinizio = annoinizio,annofine = annofine,stagioni = stagioni,totepisodi = totepisodi)cont_obj.save()return HttpResponseRedirect('/ risultatonuovaserie /')else:form = Form()return render(request,'NuovaSerie.html',{'form':form})
模板:
< form action =/ nuovaserie /method =POST> < table border = 1> < TR> < TD><标签> * TITOLO:其中/标签>< / TD> < td>< input type =textname =titolovalue ={{titolo}}>< / td> < td>< label> Titolo originale *:< / label>< / td> < td>< input type =textname =titolo_originalevalue ={{titolo_originale}}>< / td> < / TR> < TR> < td>< label> Anno inizio:< / label>< / td> < td>< input type =textname =annoiniziovalue ={{annoinizio}}>< / td> < td>< label> Anno fine:< / label>< / td> < td>< input type =textname =annofinevalue ={{annofine}}>< / td> < / TR> < TD><标签> stagioni:其中/标签>< / TD> < td>< input type =textname =stagionivalue ={{stagioni}}>< / td> < TD><标签> totepisodi:其中/标签>< / TD> < td>< input type =textname =totepisodivalue ={{totepisodi}}>< / td> < TR> < td colspan =4>< center>< input type =submitvalue =Invia>< / center>< / td> < / TR> < /表> < / form>
p>我想你希望通过您不想要的表单中的每个属性传递参数required = False。请参阅: https://docs.djangoproject.com/en/1.8/ ref / forms / fields /#required 。
If I not complete the form for "annoinizio" or "annofine" or "stagioni" or "totepisodi" django plays form.is_valid() and returns False. How can I save the data even if their value is null?
Models:
class Tvserie(models.Model):
titolo = models.CharField(max_length = 100)
titolo_originale = models.CharField(max_length = 200)
annoinizio = models.IntegerField(null=True, blank=True)
annofine = models.IntegerField(null=True, blank=True)
stagioni = models.IntegerField(null=True, blank=True)
totepisodi = models.IntegerField(null=True, blank=True)
Views:
class ContactForm(forms.Form):
titolo = forms.CharField()
titolo_originale = forms.CharField()
annoinizio = forms.CharField()
annofine = forms.CharField()
stagioni = forms.CharField()
totepisodi = forms.CharField()
def nuovaserie(request):
if request.method == 'POST':
form=ContactForm(request.POST)
if form.is_valid():
titolo = request.POST.get('titolo','')
titolo_originale = request.POST.get('titolo_originale','')
annoinizio = request.POST.get('annoinizio','')
annofine = request.POST.get('annofine','')
stagioni = request.POST.get('stagioni','')
totepisodi = request.POST.get('totepisodi','')
cont_obj= Tvserie.objects.create(titolo = titolo, titolo_originale = titolo_originale, annoinizio = annoinizio, annofine = annofine, stagioni = stagioni, totepisodi = totepisodi)
cont_obj.save()
return HttpResponseRedirect('/risultatonuovaserie/')
else:
form=ContactForm()
return render(request , 'NuovaSerie.html', {'form': form})
Templates:
<form action="/nuovaserie/" method="POST">
<table border=1>
<tr>
<td><label>Titolo*:</label></td>
<td><input type="text" name="titolo" value="{{titolo}}"></td>
<td><label>Titolo originale*:</label></td>
<td><input type="text" name="titolo_originale" value="{{titolo_originale}}"></td>
</tr>
<tr>
<td><label>Anno inizio:</label></td>
<td><input type="text" name="annoinizio" value="{{annoinizio}}"></td>
<td><label>Anno fine:</label></td>
<td><input type="text" name="annofine" value="{{annofine}}"></td>
</tr>
<td><label>stagioni:</label></td>
<td><input type="text" name="stagioni" value="{{stagioni}}"></td>
<td><label>totepisodi:</label></td>
<td><input type="text" name="totepisodi" value="{{totepisodi}}"></td>
<tr>
<td colspan="4"><center><input type="submit" value="Invia"></center></td>
</tr>
</table>
</form>
I think you are looking to pass the argument 'required=False' for each attribute in your form you don't want to be required. See: https://docs.djangoproject.com/en/1.8/ref/forms/fields/#required.
这篇关于即使表单中的值为空,我如何保存数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!