TypeError: объект «RegexValidator» не является итерируемым

Я создавал целочисленное поле массива для 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

Почему я получаю эту ошибку? Я следовал точному руководству :(


person hellofanengineer    schedule 02.11.2017    source источник


Ответы (1)


прежде всего CharField требует поля max_length, а validators должно быть в list []

so,

class Cloth(models.Model):
    color = models.CharField(validators=[validate_comma_separated_integer_list],max_length=100)
person Exprator    schedule 02.11.2017
comment
Хорошо, спасибо. оно работает. Могу я спросить еще одну вещь? Какое значение по умолчанию должно быть для этого поля? - person hellofanengineer; 02.11.2017
comment
Я не уверен, потому что это целочисленное поле массива и в то же время поле char. default='[]' работает? - person hellofanengineer; 02.11.2017
comment
если вам нужно оставить что-то пустое, сделайте пустым=True и null=True, если вы планируете не хранить данные для каждой строки в поле цвета - person Exprator; 02.11.2017