Вы хотите преобразовать окончания строк, переопределив метод формы clean_<fieldname>()
или более общий метод clean()
. Перед очисткой данных Django преобразует их в Python и проверяет их, поэтому вам также необходимо переместить проверку max_length в переопределенный метод очистки. Также обратите внимание, что «этот метод должен возвращать очищенные данные независимо от того, изменил ли он что-либо или нет».
http://docs.djangoproject.com/en/dev/ref/forms/validation/
В вашем случае код будет выглядеть так:
from django import forms
from string import replace
class YourForm(forms.Form):
some_field = forms.CharField()
# Your fields here
def clean_some_field(self):
max_length = 50
data = self.cleaned_data["some_field"]
data = replace(data, "\r", "")
if len(data) > max_length:
raise forms.ValidationError("some_field is too long!")
return data