Django может обработать проверку на стороне сервера для вас. Два примера, которые вы разместили выше, являются двумя действительными способами сделать это, и они почти правильны. Вам просто нужно передать некоторые данные в форму для проверки. Поэтому, если вы измените свое представление на
# Create your views here.
def index(request):
form = validform(request.GET or None)
return render(request,'index.html',{'form':form})
, оно будет отображать ошибку на вашей странице html, если пользователь введет что-то еще, кроме 'hari' во входных данных.
На стороне сервера означает, что ваши данные отправляются на сервер и проверяются там, возвращаются с сообщением об ошибке или в случае, если данные недействительны.
Когда мы говорим о проверке на стороне клиента, это делается клиентом ( т. е. браузер пользователя) перед отправкой данных на сервер. Это не обрабатывается django. Для выполнения sh вы можете использовать встроенную проверку html5 или javascript для написания пользовательских методов проверки. Примеры встроенной проверки html5: number input
: если пользователь вводит букву в такое поле и пытается отправить форму, появляется сообщение, сообщающее пользователю, что он должен ввести действительное число. Встроенные валидации проще в использовании, так как не требуют никаких javascript, но имеют ограничения, например, вы не можете определить свои собственные сообщения об ошибках.
Чтобы добиться валидации в вашем посте с валидацией на стороне клиента, вы можно использовать атрибут «шаблон» ввода. Шаблон - это регулярное выражение, используемое для проверки. Например,
<input type="text" pattern="/hari/">
покажет в браузере всплывающую подсказку о том, что ввод не является допустимым шаблоном, если пользователь пытается отправить форму, которая не содержит «хари» в качестве имени.
Вы можете добавить этот атрибут при создании вашей формы, например, переопределив метод __init__
вашей формы:
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['firstname'].widget.attrs.update({'pattern': '/hari/'})
Если вам нужны пользовательские сообщения и т.д. c. вам нужно написать javascript.
Как вы можете видеть, проверка на стороне клиента является довольно обширной темой, возможно, вы хотели бы прочитать некоторые документы по этому поводу, например these , также содержащие примеры .
Последнее слово: проверка на стороне клиента и проверка на стороне сервера не являются вопросом того или другого. Вы всегда должны использовать проверку на стороне сервера, поскольку она намного надежнее. Проверка на стороне клиента является дополнительным преимуществом, улучшающим взаимодействие с пользователем, но никогда не должна быть единственным методом проверки.