【问题标题】:Django: Why does my image field form not validate?Django:为什么我的图像字段表单不验证?
【发布时间】:2014-09-08 12:18:50
【问题描述】:

我有这个模型:

fs = FileSystemStorage(location='/var/tmp/media/uploads/photos')

class Picture(models.Model):
  """ vom user hochgeladenes bild """
  image_field = models.ImageField(storage=fs)
  user = models.ForeignKey('auth.User')

还有这个表格:

class PictureForm(ModelForm):
  class Meta:
    model = Picture
    fields = ['user','image_field',]

但是当我尝试验证时,它不起作用!

class PictureAddView(View):
  def get(self,request):
    picture_form = PictureForm()
    context = {'picture_form': picture_form,}
    return render(request, 'picturevault/picture_add.html', context)
  def post(self,request):
    from PIL import Image
    Image.init()
    picture_form = PictureForm(request.POST,request.FILES)
    if picture_form.is_valid():
      messages.add_message(request, messages.SUCCESS, 'picture link form valid')
    else:
      messages.add_message(request, messages.ERROR, 'picture link form invalid')
    return HttpResponseRedirect(reverse('picturevault_picture_add_view'))

你能发现错误吗?

我得到的只是“图片链接表单无效”,这意味着它没有通过“picture_form.is_valid()”。

这是模板:

{% extends 'base.html' %}

{% block content %}
<form method="POST" action="" >
{% csrf_token %}
{% for field in picture_form %}
  {{ field }}
{% endfor %}
<input type="submit" value="submit" />
</form>
{% endblock %}

【问题讨论】:

    标签: python django-1.7


    【解决方案1】:

    我能发现的第一件事是您的 HTML form 标记上缺少 enctype="multipart/form-data"。没有它,您将无法通过表单上传文件(包括图像)。

    【讨论】:

    • 谢谢!只要系统允许,我就会标记它已解决。
    猜你喜欢
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2021-06-24
    • 2015-01-15
    • 2012-02-02
    • 1970-01-01
    相关资源
    最近更新 更多