为什么将CharField max_length设置为255可以解决DataError(Django)?

时间:2017-04-09 18:16:42

标签: django postgresql python-3.5

这是一个已解决的问题,但我对它的运作方式还不太清楚。我将 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()

此处shopForeignKey。每次运行此方法时,我都会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的东西,这意味着我我不应该得到这些错误。但我知道,这很奇怪。

0 个答案:

没有答案