【问题标题】:Data truncated for column 'temp' at row 1第 1 行的“temp”列的数据被截断
【发布时间】:2014-01-09 19:41:35
【问题描述】:

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

【问题讨论】:

  • 您的选择是什么,例如TEMP 的值是多少?
  • 嗨,我的TEMP 值是 TEMP = (('HIGH', 'High'), ('MEDIUM', 'Medium'), ('LOW', 'Low'), )
  • 顺便说一句,它在我的本地服务器 SQLite3 上运行良好

标签: python mysql database django amazon-ec2


【解决方案1】:

您的列只有 2 个字符宽,但您正在尝试存储 TEMP 选项中的字符串 'HIGH'、'MEDIUM'、'LOW'(每个元组的第一个值保存在数据库中)。增加max_length 或选择不同的值进行选择,例如TEMP = ( ('H', 'High'), ('M', 'Medium'), ('L', 'Low'), )

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-03-14
      • 1970-01-01
      • 2013-12-24
      • 2019-11-18
      • 2021-08-19
      • 2013-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多