2016年4月29日 星期五

1062, "Duplicate entry 'xxx' for key 'slug

因為 models.py 裡有一個slug = models.SlugField(unique=True),,,括號裡的unique=True
,我還有一個
model_number = models.CharField(max_length=255, blank=True, null=True),,,然後views.py 有一段代碼
thing.slug = slugify(thing.model_number),,,這樣會把我輸入的 model_number傳進unique=True的slug裡,,,
所以如果重複創建同樣的model_number進去數據庫就會產生Duplicate entry 的錯誤訊息如圖

解決方式就是新增
unique=True和error_messages={'unique':"This model number has already been registered."} 
在 model_number裡,如:
model_number = models.CharField(max_length=255, blank=True, unique=True,error_messages={'unique':"This model number has already been registered."})
,,,這樣一來有重複的model_number輸入就會傳出This model number has already been registered.在form上,告訴使用者請不要輸入重複的model_number

不會有可怕的Duplicate entry 錯誤訊息

沒有留言:

張貼留言