【问题标题】:value too long for type character Django Factory类型字符 Django Factory 的值太长
【发布时间】:2020-08-09 17:02:52
【问题描述】:

我有下面的 OrderDataFactory 类。

class OrderDataFactory(factory.django.DjangoModelFactory):

    class Meta:
        model = models.OrderData

    order = factory.SubFactory(OrderFactory)
    category = 'single',
    quantity = 75.6
    price_per_kg = 10.5
    sku = factory.SelfAttribute('crop_data.id')

    class Params:
        crop_data = factory.SubFactory(CropFactory)

models.py

class OrderData(models.Model):
    CATEGORY_CHOICES = (
        (SKUCategory.SINGLE, 'Single Sku'),
        (SKUCategory.COMBO, 'Combo Sku'),
    )
    sku = models.PositiveIntegerField(null=False, validators=[MinValueValidator(1)])
    order = models.ForeignKey(Order, on_delete=models.CASCADE)
    quantity = models.FloatField()
    price_per_kg = models.FloatField()
    category = models.CharField(choices=CATEGORY_CHOICES, max_length=8)
    class Meta:
        unique_together = (('sku', 'order', 'category'),)

Category.py

class SKUCategory:
    SINGLE = 'single'
    COMBO = 'combo'

我收到以下错误。

django.db.utils.DataError: value too long for type character varying(8)

甚至类别的最大长度为 6。

【问题讨论】:

    标签: python django django-rest-framework factory-boy


    【解决方案1】:

    这行末尾有一个逗号category = 'single',。这将category 定义为元组('single',),它可能被转换为11 个字符长的字符串。去掉逗号使用字符串

    category = 'single'
    

    【讨论】:

    猜你喜欢
    • 2020-10-18
    • 2012-02-04
    • 2015-06-29
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 2019-12-18
    • 2011-12-06
    相关资源
    最近更新 更多