2012-04-11 112 views
4

所以我有這個預先存在的數據庫,我試圖連接到使用Django,我已經內省了數據庫,我只是在實際做任何事情之前清理模型,我遇到了障礙。一個數據庫表中有一行:Django的max_length值爲一個字符行

"name" character varying NOT NULL

,當我碰到python manage.py syncdb,我得到以下錯誤:

app.artistname: "name": CharFields require a "max_length" attribute that is a positive integer.

於是我走進models.py找出問題是的,我看到:

name = models.CharField(unique=True, max_length=-1)

所以我的問題是,什麼樣的價值應該怎麼設置MAX_LENGTH到,如果沒有,即使在數據庫中的定義有一個值設置?我是否將其設置爲最大可能值?

+0

@agf:無尺寸變化是PostgreSQL擴展。 – 2012-04-11 04:01:33

+0

@agf:這似乎是訣竅,謝謝! :D – 2012-04-11 04:01:59

回答

4

對於不同長度的字段,可以使用TextField而不是CharField,因此不必設置大小。

兩個可變長度字段和TextField s通常用於大量的文本。

0

我會將它設置爲相當高的值,正如應用程序預期的那樣。名字......通常80個字符就足夠了,除非你有理由相信。

+0

如果這是涉及'innodb'的'mysql'問題,我會說255個字符,因爲這是可索引的限制,但我們在這裏討論postgres。 – dnozay 2014-07-31 23:43:17

相關問題