如果我没有填写“annoinizio”或“annofine”或“stagioni”或“totepisodi”的表格,则django会播放form.is_valid()并返回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=ContactForm()
return render(request , 'NuovaSerie.html', {'form': form})
模板:
<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>
答案 0 :(得分:2)
我认为您希望为您不希望被要求的表单中的每个属性传递参数'required = False'。请参阅:https://docs.djangoproject.com/en/1.8/ref/forms/fields/#required。