【问题标题】:Django ModelForm is giving me a validation error that doesn't make senseDjango ModelForm 给了我一个没有意义的验证错误
【发布时间】:2012-12-05 00:53:00
【问题描述】:

我有一个基于图片的 ModelForm。

class Picture(models.Model):
    name = models.CharField(max_length=100)
    pub_date = models.DateTimeField('date published')
    tags = models.ManyToManyField('Tag', blank=True)
    content = models.ImageField(upload_to='instaton')

    def __unicode__(self):
        return self.name

class PictureForm(forms.ModelForm):
    class Meta:
        model = Picture
        exclude = ('pub_date','tags')

当然是模型和 ModelForm。

def submit(request):
    if request.method == 'POST': # if the form has been submitted
        form = PictureForm(request.POST)
        if form.is_valid():
            return HttpResponseRedirect('/django/instaton')
    else:
        form = PictureForm() # blank form
    return render_to_response('instaton/submit.html', {'form': form}, context_instance=RequestContext(request))

这就是视图(通过 urls.py 正确链接)

现在,表单提交时我什么都不做。我只是检查以确保它是有效的。如果是,我转发到应用程序的主页。

<form action="/django/instaton/submit/" method="post"> {% csrf_token %}
{{ form.as_p }}
<input type="submit" value"Submit" />
</form>

还有我的模板(在正确的位置)。

当我尝试实际填写表单并验证它时,即使我这样做正确,它也会将我发送回表单并在名称和内容之间显示“此字段是必需的”。我认为它指的是内容,但我不确定。

我的问题是什么?有没有更好的方法来做到这一点?

【问题讨论】:

    标签: django modelform django-forms


    【解决方案1】:

    您需要在表单中包含文件

    form = PictureForm(request.POST, request.FILES)
    

    【讨论】:

      猜你喜欢
      • 2011-04-21
      • 2019-09-06
      • 1970-01-01
      • 2013-10-20
      • 2012-05-23
      • 2018-10-31
      • 1970-01-01
      • 2012-09-30
      • 2011-01-09
      相关资源
      最近更新 更多