【筆記】Django Model類下,F(xiàn)ield字段中,choice屬性有個坑!

前言


用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é)束'),
)

改完之后運行:


終于正常了

希望這篇文章能對粗心的童鞋們有幫助,如果喜歡,也不要小氣咯,給個唄!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 他是被不合群的人 他從小懂得太多道理 他有著一雙洞察人性的眼睛 他卻又有著一顆厭惡人性的心 他被人們稱為怪人 是的...
    特立獨行的xxx閱讀 249評論 0 0
  • 在這黎明 在這初冬 我不會再將自己放縱 我不會再將自己鎖閉 好好愛自己 這美麗的人 把自己的后路斷絕 剩下只能繼續(xù)...
    虹色第五笑閱讀 171評論 0 0
  • 我叫蘇韻,我有個喜歡的男孩子叫蘇耘,他從來不知道我喜歡他,雖然我曾經(jīng)無數(shù)次對他表白。 我說:“我喜歡你,就像弟弟一...
    麥熱燕閱讀 1,893評論 7 23

友情鏈接更多精彩內(nèi)容