2016-07-14 85 views
0

有一個簡單的模型Django的:「無效的默認值」,「遷移」命令時

class Baz(models.Model): 
    FOO = ('foo', 'Foo') 
    BAR = ('bar', 'Bar') 
    FOO_BAR = (FOO, BAR) 

    foo_bar = models.CharField(max_length=5, default=FOO, choices=FOO_BAR) 

通過python manage.py makemigrations做遷移,試圖遷移的時候,收到錯誤後:

django.db.utils.OperationalError: (1067, "Invalid default value for 'foo_bar'") 

試過明確地將('foo', 'Foo')沒有結果。試圖使用FOO_BAR[0] - 同樣的錯誤。

任何想法?

+1

foo_bar這樣的名稱字段是一個CharField,默認期望字符串不是一個元組,所以'foo_bar這樣的名稱= models.CharField(max_length = 5,default = FOO [0],choices = FOO_BAR)'應該解決你的問題。 – slackmart

回答

2

你不應該指向你變量作爲默認值,你應該提供將被保存的真實價值:

foo_bar = models.CharField(max_length=5, default='foo', choices=FOO_BAR)