第1行的“temp”列截断数据

时间:2013-12-20 21:24:21

标签: python mysql database django amazon-ec2

我在AWS上部署了一个简单的Django应用程序。我使用的数据库是MySQL。该应用程序的大多数部分运行良好。但是当我提交表单并将表单中的数据存储到模型中时,恰好会出现问题。错误页面显示Data truncated for column 'temp' at row 1temp是这样的ChoiceFieldtemp = forms.ChoiceField(label="temperature", choices=TEMP),在模型文件中tempCharField,就像temp = models.CharField(max_length=2, choices=TEMP)一样。错误发生在.save()。我该如何解决这个问题?任何建议和帮助表示赞赏。顺便说一下,正如我所搜索的那样,截断问题的发生是因为要存储在数据库中的数据类型。但我仍然无法弄清楚如何修改我的代码。

2 个答案:

答案 0 :(得分:2)

您遇到的错误是因为HIGHMEDIUMLOW大于2个字符。重新定义您的选择,以便选择的值不应超过您的字段max_length=2设置的字符数限制temp

TEMP = (
    ('H', 'High'),
    ('M', 'Medium'),
    ('L', 'Low'),
)

答案 1 :(得分:1)

你的专栏只有2个字符宽,但是你试图将TEMP选项中的字符串'HIGH','MEDIUM','LOW'存储起来(每个元组的第一个值保存在数据库中) )。增加max_length或为选择选择不同的值,例如TEMP = ( ('H', 'High'), ('M', 'Medium'), ('L', 'Low'), )

它在SQLite中运行良好,因为SQLite只是忽略了max_length属性(和其他东西)。