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 中的验证?

4

2 回答 2

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.'] }
于 2012-09-07T14:14:49.193 回答
0
  1. 正如您所看到的,django 默认情况下不会在 save() 上验证模型,但是您的数据库在插入 NULL 值时应该抛出错误,我会检查架构以确保。
  2. 使用URLValidator
于 2012-09-07T15:03:57.640 回答