【问题标题】:Django forms with image fields validation带有图像字段验证的 Django 表单
【发布时间】:2011-04-15 11:31:48
【问题描述】:

我有 2 个字段的简单表单:姓名、照片。

class MyForm(ModelForm):
class Meta:
    model = My


class My(models.Model):
    Name = models.models.CharField(max_length=512)
    Photo = models.models.ImageField(upload_to=uploader)

我正在尝试验证并保存此模型。用户选择照片但不输入姓名。表单未通过验证。并且用户有错误消息。然后他输入姓名,但没有选择照片。并且表单不再验证。但是用户已经选择了照片。

我找到了文章,作者对此进行了解释。但他写道,这些信息已经过时了。 Tnx 寻求帮助。

【问题讨论】:

    标签: image validation django-forms


    【解决方案1】:

    有关验证的文档:http://docs.djangoproject.com/en/dev/ref/forms/validation/
    但它认为根据文档将空白和 null 设置为 false 就足够了:http://docs.djangoproject.com/en/1.3/ref/models/fields/

    更新:空白和空差异覆盖率:http://www.b-list.org/weblog/2006/jun/28/django-tips-difference-between-blank-and-null/

    但它们是默认的False... snap...
    这意味着必须按照http://docs.djangoproject.com/en/dev/ref/forms/validation/#using-validation-in-practice 或模板中的说明进行所有验证。
    有很多方法可以验证表单。您甚至可以使用 javascript 女巫,仅当字段有效时才允许发布。
    最好的可能是根据这个进行验证:http://docs.djangoproject.com/en/1.3/topics/forms/

    更新:它似乎在某种程度上与Resubmitting Image in ImageField after Validation Error in Django 相似

    【讨论】:

    • tnx JackLeo!但在我的情况下,图像和名称是必需的。
    • @user709694 将空白和 null 设置为 false 意味着它们不能完全空白或为空。更新中
    • 好的。但我不明白这些信息如何帮助我:(问题是,如果他没有输入名称,用户必须选择两次图像。
    • 是的,那么它是 stackoverflow.com/questions/5293960/… 的副本,很抱歉你会看到这个坏消息。
    • JackLeo tnx 寻求帮助。我决定在客户端使用 javascript 验证,在服务器端使用标准 django 验证来检查提交的数据是否有问题。
    【解决方案2】:

    您需要包含 enctype="multipart/form-data" 才能将图像字段和文件字段数据绑定到表单。没有它,这些字段将无法验证。

    {% block page_content_body %}
        <div class="row">
            <div class="span12">
                **<form enctype="multipart/form-data"** action="{% url 'deal_manager:deals_create' %}?place={{ place.id }}" method="post">
                    ...
    

    【讨论】:

      猜你喜欢
      • 2014-05-12
      • 2020-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-25
      • 2014-06-05
      • 2011-02-24
      • 2016-04-08
      相关资源
      最近更新 更多