我使用的是django1.9。我有一个模型如下:
class Report(models.Model):
LANGUAGE_CHOICES = (
('EN', 'English'),
('CY', 'Welsh')
)
company = models.ForeignKey(Company)
language = models.CharField(
max_length=2,
choices=LANGUAGE_CHOICES,
default='EN'
)
pdf_url = models.URLField(blank=True)
现在我要插入一个值:
^{pr2}$但这失败的原因是:
psycopg2.DataError: value too long for type character varying(2)
我的数据源包含“英语”和“威尔士语”,而不是“EN”和“CY”。在
如何使用人类可读的名称进行更新?或者我需要维护一个单独的查找列表,从人类可读的名称到导入脚本中的短值?在
我认为应该是:
出现以下错误是因为您试图插入一个大于定义的
max_length
(max_length=2)的值:NB:每个元组中的第一个元素是要在模型上设置的实际值,第二个元素是人类可读的名称。在您的例子中,实际值也是人类可读的名称。您还应该使用更大的
max_length
值,因为您将使用人类可读的名称格式。定义您的选择如下:然后按如下方式创建对象:
^{pr2}$查看此处django docs了解更多详细信息。在
如果您的现有数据库已经填充了此模型(“EN”),并且您对迁移它不感兴趣,可以使用查找
相关问题 更多 >
编程相关推荐