2014-10-02 94 views
0

我試圖設置像Date,Integer和CharFields這樣的幾個字段的默認值,但是當我將它設置爲default=12(如果是整數),它不會反映在頁面中。但是總是顯示默認值零。無法在Django模型中設置默認值

Months = models.IntegerField('Enter the month',default=12 

上面的字段是必填字段,因此默認情況下0顯示在窗體中,但不顯示零以外的任何內容。

與charField和DateField的情況相同,在這種情況下,任何內容都不會顯示在窗體中。

我在後端使用mySQL。

我想將默認日期設置爲'0000-00-00',我該怎麼做?

+0

'default = 12'僅適用於新建模型。數據庫中的現有值將保留舊值,直到您明確更改它爲止。 – stalk 2014-10-02 07:05:41

+0

新模式意味着新表?或新的數據條目? – User42 2014-10-02 07:11:25

+0

我的意思是根據django的新模型實例。它對應於新的表格行。 'YourModel(** data).save()'< - 新模型實例已保存,即在SQL數據庫中插入(或更新)了新行 – stalk 2014-10-02 07:13:32

回答

0

設置的默認值分爲模型

爲你的建議

Months = models.IntegerField('Enter the month',default=12... 

但這個值將用於創建和對象時,你不要這個默認值被添加收到此字段的任何值

例如:

class Year (models.Model): 
    name = models.CharField(max_length=75) 
    months = models.IntegerField(default=12) 

現在,在控制檯/查看你可以這樣做:

new_year = Year(name='any_name') 
new_year.save() # And the Year object is created with months = 12 
0

您應檢查默認值是居然有。如果在創建模型並應用syncdb後添加了默認值,請確保運行makemigrate(在Django 1.7上)或外部應用程序(如South)來更改數據庫表。如果你不這樣做,或者你只運行syncdb,這個改變將不會反映在你的MySQL上。