blank = False,null = False在模型代码Django中不起作用

时间:2012-09-07 13:30:16

标签: django django-models django-1.3

class Url(models.Model):
    url=models.URLField(verify_exists=True,max_length=200,blank=False,null=False)
    date=models.DateTimeField(auto_now_add=True)
    count=models.IntegerField(default=0)
    isspam=models.IntegerField(default=0)

这是我的模型代码....当我创建一个没有参数的对象时...即使在编写blank=False,null=False之后,该对象也被创建并保存到数据库中,并且也没有检查URL是否存在如果我提供一个死链接,它可以工作,但它不应该!

我的代码有什么问题?

相关查询:现在在django 1.4中,不推荐使用verify_exists ...如何在1.4中检查验证?

2 个答案:

答案 0 :(得分:0)

所以我通过修改我的'url'到url=models.URLField(verify_exists=True,max_length=200,default=None,blank=False,unique=True) 并通过object.clean_fields()验证它来实现它。

如果您不使用有效值或空值,则会抛出这样的错误

ValidationError: {'url': [u'This URL appears to be a broken link.'] }

ValidationError: {'url': [u'This field cannot be blank.'] }

答案 1 :(得分:0)

  1. 正如您所见,django默认情况下不会在save()上验证模型,但是插入NULL值时您的数据库应该抛出错误,我会检查架构以确定。
  2. 使用URLValidator