我刷新了数据库以重置数据库。尝试执行以下代码时出现此错误。
引发错误的代码:
try:
print("Attempting to load %s" % store.get('name'))
# THIS NEXT LINE THROWS ERROR
store_obj = Store.objects.get(name=store.get('name'))
except Store.DoesNotExist:
store_obj = Store(name=store.get('name'),
last_updated=last_updated,
address=store.get('address'),
city=store.get('city'),
state=store.get('state'),
zip_code=store.get('zip_code'))
错误:
Exception Type: DataError at /stores/
Exception Value: value too long for type character varying(2)
\d
of stores_store
Django模型:
class Store(models.Model):
name = models.CharField(max_length=200)
description = models.TextField()
created_at = models.DateTimeField(default=datetime.now, blank=True)
last_updated = models.DateTimeField(default=datetime.now, blank=True)
# Address
address = models.CharField(_("address"), max_length=128)
city = models.CharField(_("city"), max_length=128)
state = USStateField(_("state"))
zip_code = USZipCodeField(_("zip code"), max_length=5)
def __str__(self):
return self.name
如您所见,商店名称是VARCHAR 200,而不是2。但是,如果没有出现此错误,我将无法完成此get操作。我尝试了另一次冲洗和makemigrations
-> migrate
,但仍然没有运气。我还能尝试什么?
谢谢!
答案 0 :(得分:1)
“状态”列具有USStateField(_(“ state”)),我认为它是variant(2),您是否要添加一个元组,该元组的状态要大于variant(2)?
我建议您将USStateField(_(“ state”))更改为CharField或放置max_length。
如果这不起作用,则可以尝试删除迁移历史记录以再次进行迁移。在迁移过程中的app文件夹内,删除所有看起来像0001_initial.py的文件,不要删除migrations文件夹内的 init .py,希望它对您有帮助:D