前言
用Python從事后端開發(fā)的同學(xué)應(yīng)該都很熟悉大名鼎鼎的Django吧, Django開發(fā)中我們常會在models.py文件中編寫我們的數(shù)據(jù)模型類,在編寫模型類的時候我們常常會根據(jù)需求用到各種Field字段用以映射對應(yīng)的數(shù)據(jù)表列。
于是,掉坑之旅了開始
鄙人不才,于某日一個神志不清的下午寫下了如下代碼:
class ActApplicant(Model):
status_choices = {
(0, '未通過'),
(1, '已通過'),
(2, '申請中')
}
act = ForeignKey(Act, verbose_name='活動', on_delete=CASCADE)
applicant = ForeignKey(Applicant, verbose_name='申請人', on_delete=CASCADE)
apply_time = DateTimeField('申請時間')
status = SmallIntegerField('申請狀態(tài)', choices=status_choices, default=2)
def __str__(self):
return self.act.title
class Meta:
unique_together = ('act', 'applicant')
verbose_name = verbose_name_plural = '活動申請'
細(xì)心的童鞋可能已經(jīng)發(fā)現(xiàn)了代碼的問題,嘖嘖嘖,好吧,塞心仔,這篇文章可能不適合你們...
什么?。磕阕罂从铱瓷峡聪驴淳褪菦]發(fā)現(xiàn)有啥不對,哈哈 ,看來我并不孤獨吶,如果你是后者,那這篇文章簡直就是為你而寫?。?/p>
苦逼回憶開始...
那天寫完上面代碼之后接下來的整整三個多小時里,我被一個奇怪的現(xiàn)象困擾,在執(zhí)行數(shù)據(jù)庫同步變更操作的時候,這個表竟然一直提示有變動,而通常情況下我們在執(zhí)行python manage.py makemigrations命令之后繼續(xù)重復(fù)執(zhí)行該命令就會提示No changes detected

沒完沒了的提示有變動
最終,在“小樣兒,我還治不了你了"的精神力驅(qū)動下,頑強(qiáng)滴我選擇了一個字一個字去死摳代碼
咦~~ 這里的status_choice怎么是個花括號,記得好像應(yīng)該是圓括號啊,改過來試試....改完執(zhí)行python manage.py makemigrations ,嗯,還是提示有變化,再執(zhí)行,No changes detected 什么?!就這樣好了 !!!
改動后的status_choice
status_choice=(
(0,'即將開始'),
(1,'進(jìn)行中'),
(2'已結(jié)束'),
)
改完之后運行:

終于正常了