我還有另一個可能很基本的Django問題。我正在爲我的類編寫一個數據庫應用程序,我希望能夠從應用程序中設置當前年份。這背後的想法是,我可以手動切換到下一個學年,當所有的標記等完成。切換本年度的功能,然後應該做其他的事情,以及 - 把學生在新的默認課程等Django:在模型內創建模型實例
所以我創建了一個模型稱爲元數據:
class MetaData(models.Model):
data_id = models.IntegerField(default = 1, unique = True)
current_year = models.IntegerField(choices=ACADEMIC_YEARS)
這將是巨大的如果我可以在其他模型中訪問current_year,例如當我想要輸入新課程/學生時將其設置爲默認值。我嘗試這樣做:
class Course(models.Model):
try:
meta = MetaData.objects.get(data_id=1)
current_year = meta.current_year
except MetaData.DoesNotExist:
current_year = 2010
year = models.IntegerField(choices=ACADEMIC_YEARS, default=current_year)
不幸的是,我得到的錯誤「沒有這樣的表:database_metadata」當我第一次運行執行syncdb - 我猜,因爲執行syncdb沒有創建表時,它測試的代碼。
有沒有更好的解決方案呢?
的ForeignKey的無助 - 我想在這裏使用的基本上是一個常量,需要每年更換一次。 我的計劃是讓我點擊管理菜單中的一個按鈕,這個按鈕可以改變2012年到2013年的所有年份,並將所有學生放入新年的默認課程中,等等。如果我想進入一門新課程,那麼使用current_year作爲默認值會很有用。 – Tobi
在'default ='後面似乎'this_year'需要是可調用的,例如classmethod。 – okm
糟糕 - 感謝,'def this_year'是錯誤的類 – danodonovan