Джанго принимает целое число в CharField - PullRequest
0 голосов
/ 28 декабря 2018

Я изучаю django и создал Page form class примерно так:

from django import forms

class Page(forms.Form):
    title  = forms.CharField(max_length = 200, min_length = 10)
    body   = forms.CharField(min_length = 200, max_length = 8000)
    author = forms.CharField(min_length = 5, max_length   = 60)
    price  = forms.FloatField(min_value = 10, max_value   = 50)

Я поиграл с ним в интерактивной оболочке и обнаружил, что при вводе integer он просто принимает и проверяетвсе поля, хотя сначала конвертировали integer в string.

Разве это не проблематично?Я имею в виду, что я не хотел бы, чтобы в Author field были цифры или символы.Нужно ли мне писать мои дополнительные clean_author method или у меня есть другие django Form class для решения именно этой проблемы ??

1 Ответ

0 голосов
/ 28 декабря 2018

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

Вы можете легко проверить ввод данных пользователями с помощью регулярных выражений на внутреннем или внешнем интерфейсе.

exp = '[\w\s]+'

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

https://regexr.com/ используйте этот сайт, чтобы сделать ваше регулярное выражение.

...