"int_list_validator" не работает в формах Django

Я сделал следующую форму Django.

from django.core.validators import int_list_validator

class RoomForm(forms. Form):
    room_numbers = forms.CharField(validators=[int_list_validator], required=False, max_length=4000)

В этой форме даже если я отправлю строку типа 'hello', форма будет отправлена. То есть я могу получить значение 'hello' в views.py. Я не понимаю почему, потому что "int_list_validator" не должен позволять этого.

Неудачное именование: int_list_validator - это не валидатор, а вспомогательная функция, которая его создает.

validate_comma_separated_integer_list - валидатор, созданный вызовом int_list_validator с более подходящим сообщением, чем стандартное _("Enter a valid value."):

validate_comma_separated_integer_list = int_list_validator(
    message=_("Enter only digits separated by commas."),
)

Использование:

from django import forms
from django.core.validators import int_list_validator, validate_comma_separated_integer_list


# room_numbers = forms.CharField(validators=[int_list_validator], required=False, max_length=4000)
room_numbers = forms.CharField(validators=[int_list_validator()], required=False, max_length=4000)

# Or
room_numbers = forms.CharField(validators=[validate_comma_separated_integer_list], required=False, max_length=4000)
Вернуться на верх