2012-09-07 50 views
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也没有检查存在。如果我提供了一个死链接,它的工作原理,但它不应该!blank = False,null = False在模型代码中不起作用Django

我的代码有什么问题?

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

+0

您是否在更改后重新创建了数据库? – Rohan

+0

@Rohan是的,但问题仍然存在! –

+0

如果您正在编辑现有模型并运行sync_db,则它不会更新表格。使用'南方'或类似的方式允许迁移。见http://stackoverflow.com/questions/1115238/django-model-sync-table –

回答

0
  1. 正如你所看到的,Django不上的保存()默认验证模式,但你的数据库应该在插入NULL值时引发错误,我会检查模式以确保。
  2. 使用URLValidator
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.'] } 
相关问题