Исправление и очистка формы ввода в Джанго - PullRequest
0 голосов
/ 05 августа 2011

Предположительно методы clean_ в Django предназначены для встроенной очистки данных формы ввода, а также для принятия / отклонения представлений.

Учитывая модель, где

"FooBar"

является действительным вводом. Существует ли стандартный способ исправления таких вещей, как

"FOOBAR"
"foo-bar"
"FooBar "

несколько нечетко и обобщенно до проверки?

Ответы [ 2 ]

1 голос
/ 05 августа 2011

Если вам нужно перейти из ALLCAPS в CapCase, краткий ответ - нет.

Как ваша система узнает, что Aaaaaaaaaa должен быть заглавным AaaaAaaaAa?

1 голос
/ 05 августа 2011

Хорошо, неясно, что вы действительно хотите сделать с изменением, но что-то вроде этого должно работать:

from re import sub
...
#in your form:
def clean_myfield(self):
    data = self.cleaned_data['myfield']
    #Strip special chars
    data = sub("[\s_\-]","",a)
    if b.lower() != "foobar":
        raise forms.ValidationError("You have not specified foobar, you wicked boy!")
    #Do whatever conversion to camelcase you want on data (this seemed very app specific to me)
    return data

Проверка clean_field вызывается довольно поздно (например, после метода очистки поля), но до тех пор, пока вы не попытаетесь выполнить эту проверку проверки раньше, она должна работать нормально.

Конечно, вы также можете сначала выполнить преобразование верблюдов и проверку на равенство, если хотите, это не имеет большого значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...