【问题标题】:not able to save the integer value in back-end django无法在后端 django 中保存整数值
【发布时间】:2014-07-28 17:19:12
【问题描述】:

我没有使用 django 表单将数据保存在 django 后端。 模型.py

contact_no = models.IntegerField()

views.py

number = "9739111111"
data = Profile(contact_no=number)
data.save()

在本地主机上它可以工作,但在服务器上它没有保存联系号码 号码正在保存,但默认号码正在保存 2147483647 这个号码。这个数字是整数的最大范围。

我不知道如何按原样保存这个号码 9739111111。 请帮帮我。

【问题讨论】:

  • 尝试使用 15 或 20 的 char 字段而不是整数,并在保存前进行验证
  • 在服务器上它不工作,,,,,,,,, 获取默认值 2147483647 但在本地主机上它使用 charfield 工作
  • 如果您更改模型,您可能需要重新同步数据库以应用更改
  • 我做了所有的事情,,,,,,,还是一样的问题,,,,,,,,
  • 您没有理由对电话号码使用整数(或大整数)字段。您是否对联系电话进行数学运算? (c1 + c2)?如果不是,请考虑切换到字符域。

标签: python django


【解决方案1】:

您在数据库中遇到了maximum value for a 32 bit integer。如果您需要存储那么大的值,请尝试切换到 django BigIntegerField。使用您陈述的示例:

models.py

contact_no = models.BigIntegerField()

views.py

number = 97391111111
data = Profile( contact_no = number )
data.save()

话虽如此,您确定您使用的是正确的字段类型吗?如果这是一个电话号码(如字段名称所示),您的要求是否允许您针对特定国家/地区?如果是这样,您可能想尝试使用localflavor app 来适当地验证和存储这些值。

【讨论】:

  • 在这里给我 BigInteger 的小例子。
  • @Gaurav 而不是models.IntegerField() 使用models.BigIntegerField()
  • 查看更新后的答案。根据官方 django 文档,它应该像更改字段类型一样简单。
  • 在服务器上如何迁移。我在 Dreamhost 服务器上使用 sql。
  • 我也试过这个 BigInteger() 字段,,,,,,,,, 它不工作,,,,,,, 或者可能没有正确同步,,,,
猜你喜欢
  • 1970-01-01
  • 2020-05-06
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 2021-05-21
  • 1970-01-01
  • 2012-08-08
相关资源
最近更新 更多