【问题标题】:Save the data even if their value in a form is null?即使表单中的值为空,也要保存数据吗?
【发布时间】:2015-06-23 08:53:22
【问题描述】:

如果我没有填写“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)

观看次数:

class ContactForm(forms.Form):
        titolo = forms.CharField(required=False)
        titolo_originale = forms.CharField(required=False)

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','')

           cont_obj= Tvserie.objects.create(titolo = titolo, titolo_originale = titolo_originale)
           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 colspan="4"><center><input type="submit" value="Invia"></center></td>
    </tr>
  </table>
 </form>

【问题讨论】:

  • 您的表单或模板中没有这些字段。
  • 1.不要在views.py 上定义你的表单 2. 在form.is_valid() 之后使用表单的清理数据,而不是直接请求 3. 你可以附加堆栈跟踪吗?我在任何地方都看不到您提到的字段,因此在模型级别而不是在表单上可能是一些问题。

标签: django django-models django-forms django-templates django-views


【解决方案1】:

在models.py中:

class Tvserie(models.Model):
    titolo = models.CharField(max_length = 100,blank=True,null=True)
    titolo_originale = models.CharField(max_length = 200,blank=True,null=True)

在forms.py中

class ContactForm(forms.Form):
    titolo = forms.CharField(required=False)
    titolo_originale = forms.CharField(required=False)

【讨论】:

    猜你喜欢
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多