2014-10-02 90 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上。