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

blank=False,null=False不在模型代码Django中工作,django,django-models,django-1.3,Django,Django Models,Django 1.3,这是我的模型代码…当我创建一个没有参数的对象时..即使在写入blank=False,null=False之后,对象也会被创建并保存到数据库中,并且URL也不会被检查是否存在。如果我提供了一个死链接,它会工作,但不应该 我的代码有什么问题 相关查询:现在在django 1.4中,verify_exists已被弃用…我如何在1.4中检查验证?因此,我通过将我的“url”修改为url=models.URLField(verify_exists=True,max_length=200,default=N

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

我的代码有什么问题


相关查询:现在在django 1.4中,verify_exists已被弃用…我如何在1.4中检查验证?

因此,我通过将我的“url”修改为
url=models.URLField(verify_exists=True,max_length=200,default=None,blank=False,unique=True)使其正常工作
并按对象验证。清除字段()

如果不使用有效值或空值,则会抛出如下错误

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)
  • 正如您所看到的,django在默认情况下不会在save()上验证模型,但是您的数据库在插入NULL值时应该抛出一个错误,我会检查模式以确保
  • 使用

  • 更改后是否重新创建了DB?@Rohan是的,但问题仍然存在!如果您正在编辑现有模型并运行sync_db,它将不会更新表。使用
    south
    或类似工具允许迁移。请看您能否发布
    python manage.py sqlall
    并检查这些字段是否为空?@Rohan:别担心……我做到了……顺便说一句,我从sqlall和dir(Url)那里得到了如何做到这一点的提示……有时我会忘记dir,但它是一个救命稻草。谢谢你的帮助:)
    ValidationError: {'url': [u'This URL appears to be a broken link.'] }
    
    ValidationError: {'url': [u'This field cannot be blank.'] }