2017-06-19 75 views
0

創建一個選擇標籤我有一個models.py文件:無法在Django

class MyUser(AbstractUser): 
    YEAR_IN_SCHOOL_CHOICES = (('FRESHMAN', 'HOD'),('SOPHOMORE', 'Staff_Member'),) 
    #phone = models.CharField(max_length = 10, null = True) 
    Designation = models.CharField(max_length = 20, null = False,choices=YEAR_IN_SCHOOL_CHOICES,default='FRESHMAN') 

當我運行蟒蛇manage.py遷移命令,它顯示錯誤:django.db。 utils.InternalError:(1067,「爲‘指定’無效的默認值」)

我看到的文檔:link

任何人都可以請點我在做什麼錯在THI實施?

謝謝。

回答

0

這是典型的接受結構:

class MyUser(AbstractUser): 
    FRESHMAN = 'HOD' 
    SOPHOMORE = 'Staff_Member' 
    YEAR_IN_SCHOOL_CHOICES = (
     (FRESHMAN, 'Freshman'), 
     (SOPHOMORE, 'Sophomore'), 
    ) 
    Designation = models.CharField(max_length=20, null=False, choices=YEAR_IN_SCHOOL_CHOICES, default='HOD') 

的原因(或原因之一),你正在運行到的問題是因爲在每一個選擇的元組的第一項指定什麼將被存儲在數據庫中,而第二個則指定在表單上的下拉菜單中顯示的內容。所以你的默認需要是默認存儲在數據庫中的內容。我假設它是'HOD'你想要默認存儲在數據庫中,所以我以這種方式設置了我的示例。

+0

我也試過這個,這是一些遷移問題,因爲即使當我評論這些行時,出現錯誤,感謝您的答案。 – ssharma

+0

如果在執行我的答案中的更改後刪除最新的遷移文件並再次進行遷移,會發生什麼情況?我認爲選擇可能存儲在遷移文件中,但我不確定。 – DragonBobZ

+0

顯示:正在運行遷移: 沒有適用的遷移。 – ssharma