一个字符行的 Django max_length 值

Posted

技术标签:

【中文标题】一个字符行的 Django max_length 值【英文标题】:Django max_length value for a character verying row 【发布时间】:2012-04-23 09:07:37 【问题描述】:

所以我有这个预先存在的数据库,我正在尝试使用 Django 连接,我已经对数据库进行了自省,我只是在实际做任何事情之前清理模型,我遇到了路障。其中一个数据库表有一行:

“名称”字符变化不为空

当我运行 python manage.py syncdb 时,我收到以下错误:

app.artistname: "name": CharFields 需要一个正整数的 "max_length" 属性。

所以我进入了 models.py 以找出问题所在,我看到了:

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

所以我的问题是,如果连数据库中的定义都没有设置值,我应该将 max_length 设置为什么值?我是否将其设置为可能的最大值?

【问题讨论】:

@agf:无大小变化是 PostgreSQL 扩展。 @agf:这似乎可以解决问题,谢谢! :D 【参考方案1】:

对于不同长度的字段,您可以使用TextField 而不是CharField,这样您就不必设置大小。

可变长度字段和TextFields 通常都适用于大量文本。

【讨论】:

【参考方案2】:

我会将其设置为应用程序预期的合理高值。名称...通常 80 个字符就足够了,除非您有理由不相信。

【讨论】:

如果这是一个涉及innodbmysql 问题,我会说255 个字符,因为这是可以索引的限制,但我们在这里讨论的是postgres。

以上是关于一个字符行的 Django max_length 值的主要内容,如果未能解决你的问题,请参考以下文章

“max_length”如何影响 Django 模型?

Django ORM

如何更改 Django 表单显示的默认错误消息

Django --- 常用字段及参数

如何让 Django 从 unicode 字符创建 slug?

Django模型层之更多操作