这是一个已解决的问题,但我对它的运作方式还不太清楚。我将 Django 与 PostgreSQL 一起使用。我有一个有几个领域的模型。其中一个名为track_code
,是CharField(max_length=13)
。这个类中有一个方法,它包含以下块:
new_order, created = Order.objects.get_or_create(shop=fshop, order_id=order['number'])
new_order.shop = fshop
new_order.order_id = order['number']
new_order.status = order['fulfillment-status']
new_order.created_at = order['created-at']
new_order.api_id = order['id']
new_order.payment = order['financial-status']
new_order.track_code = track
new_order.save()
此处shop
是ForeignKey
。每次运行此方法时,我都会django.db.utils.DataError: value too long for type character varying(13)
。这似乎是track_code
字段的问题。 track
长度永远不会超过12,肯定是。 我在SlugField上找到了SO的解决方案,而不是CharField,但它适用于两者。 需要将字段的max_length设置为255 。
我唯一不理解的是为什么会这样?我从未试图将track_code
设置为超过12的东西,这意味着我我不应该得到这些错误。但我知道,这很奇怪。