【问题标题】:TypeError: 'RegexValidator' object is not iterableTypeError:“RegexValidator”对象不可迭代
【发布时间】:2018-04-14 14:06:33
【问题描述】:

我正在为 color 构建整数数组字段。

我尝试使用 CommaSeparatedIntegerField 但它已被弃用

CommaSeparatedIntegerField has been deprecated. 
Support for it (except in historical migrations) will be removed in Django 2.0.
    HINT: Use CharField(validators=[validate_comma_separated_integer_list]) instead

所以我按照建议将颜色字段设置为CharField 而不是CommaSeparatedIntegerField

from django.core.validators import validate_comma_separated_integer_list

class Cloth(models.Model):
    color = models.CharField(validators=validate_comma_separated_integer_list)

但我在进行迁移时遇到此错误

TypeError: 'RegexValidator' object is not iterable

为什么会出现此错误?我遵循了确切的指导方针:(

【问题讨论】:

    标签: django django-models django-rest-framework django-validation


    【解决方案1】:

    首先CharField 需要max_length 字段,validators 需要在list []

    所以,

    class Cloth(models.Model):
        color = models.CharField(validators=[validate_comma_separated_integer_list],max_length=100)
    

    【讨论】:

    • 非常感谢。有用。我能再问一件事吗?该字段的默认值应该是什么?
    • 我不确定,因为它是数组整数字段,同时它是字符字段。 default='[]' 有效吗?
    • 如果你需要保留一个空白的东西,让blank=True和null=True,如果你不打算在颜色字段中保留每一行的数据
    猜你喜欢
    • 2013-09-01
    • 2017-08-27
    • 2018-10-10
    • 2021-12-13
    • 2019-02-20
    • 2020-03-27
    • 2018-12-12
    • 2018-07-16
    • 2011-09-12
    相关资源
    最近更新 更多