#ajax #django #django-forms #django-validation
#ajax #django #django-forms #django-проверка
Вопрос:
У меня есть два вопроса.
- Я сделал определенный
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.