Django: проверка формы на стороне клиента?

#ajax #django #django-forms #django-validation

#ajax #django #django-forms #django-проверка

Вопрос:

У меня есть два вопроса.

  1. Я сделал определенный view POST запрос accept только через ajax (не общий POST запрос)

Я использую Form и понял, что если бы я использовал ajax , я не смог бы использовать встроенную проверку формы django.

В этом случае я должен выполнять собственную проверку для всех полей javascript ?. Я думаю, что это довольно трудоемкая и избыточная вещь. Есть альтернативы?

2. Можно view ли принимать только ajax POST-запрос? Я имею в виду, я делаю что-то вроде этого:

 def post(self, request, *args, **kwargs):
    if request.is_ajax():
        # return response
    else:
        # give HTTP404
  

Это плохая практика? После view принятия ajax запроса он всегда принимает общий HTTP-запрос?

Спасибо.

Ответ №1:

Создайте HTML-форму в отдельном шаблоне. При отправке с помощью ajax, если форма недопустима, т.Е. form.is_invalid(), создайте экземпляр формы с запросом.ОТПРАВЬТЕ и повторно отобразите шаблон. Затем верните этот отрисованный HTML обратно в вашу функцию Ajax и замените существующую форму.

Это позволит избежать необходимости много возиться с JS.