2011-04-15 115 views
2

我有简单的形式与2个字段:名称,照片。Django形式与图像字段验证

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寻求帮助。

回答

0

文件覆盖验证:http://docs.djangoproject.com/en/dev/ref/forms/validation/
但认为这将是足以使空,空,以虚假根据文档:http://docs.djangoproject.com/en/1.3/ref/models/fields/

UPDATE:空和空DIFF报道:http://www.b-list.org/weblog/2006/jun/28/django-tips-difference-between-blank-and-null/

但他们来了作为默认False ...快照...
这意味着所有的验证必须按http://docs.djangoproject.com/en/dev/ref/forms/validation/#using-validation-in-practice或模板中所示完成。
验证表单有很多方法。你甚至可以使用javascript witch只允许在字段有效时发布。
最佳很可能是根据这个做验证:http://docs.djangoproject.com/en/1.3/topics/forms/

更新:看来,它在某种附近Resubmitting Image in ImageField after Validation Error in Django

+0

TNX JackLeo的重复!但在我的情况下,图像和名称是必需的。 – Andrey 2011-04-15 12:08:27

+0

@ user709694将空白设置为空,将null设置为false意味着它们不能为空白或为空。更新路上 – JackLeo 2011-04-15 12:10:38

+0

好的。但我不明白这些信息如何帮助我:(这个问题,如果用户没有输入名字,那么用户必须选择两次图片。 – Andrey 2011-04-15 12:23:20