"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)