2012-09-07 49 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.'] } 
相關問題