Django использует формы повсеместно
Мне кажется, я неправильно понимаю Django Forms / работу с базами данных, особенно потому, что я совсем новичок
Для примера возьмем комментарии на YouTube. Если я пишу комментарий к видео на YouTube и нажимаю кнопку submit, комментарий публикуется напрямую, все могут его увидеть, страница не нуждается в моем обновлении. Затем YouTube сохраняет комментарий в базе данных.
Как бы вы реализовали нечто подобное из теории в Django? Согласно текущим знаниям, я должен использовать функцию комментария поместить его в HTML форму > кнопка submit > обновить страницу
Или возьмем другой пример, всплывающее окно сайта, где можно ввести адрес электронной почты, который будет сохранен. Согласно моим текущим знаниям, мне придется создать форму -> кнопку Submit -> Refresh Page, что заставит пользователя вернуться к началу сайта, что раздражает.
Когда я читаю материал и смотрю учебники, все это как бы перемешивается в формы.
TL;DR:
Вам нужно использовать XMLHttpRequest, получить обратно отрендеренный html, который вы вставите в DOM с помощью JS.
Длинное объяснение:
Я использую Django уже некоторое время, и я бы сказал, что он дает свои лучшие результаты на классическом веб-потоке:
- страница/форма загружена
- форма отправлена
- страница перезагружается
Если вы делаете что-то подобное, Django работает очень хорошо, прямо из коробки, он дает вам хорошую валидацию и все необходимые инструменты!
Ок теперь давайте вернемся к 2022 году пожалуйста... :D
Вы все еще можете делать динамический контент с помощью Django, но это не так просто. Для комментария на Youtube или чего-то подобного вам, вероятно, понадобится простая форма (даже с минимальной валидацией) и запрос AJAX/fetch/XMLHttpRequest, который отправляет форму в конечную точку Django и получает обратно кусок HTML, который вы помещаете в нужное место DOM.
Это все еще работает, и это выполнимо, например, вы можете заставить FormView возвращать шаблон (здесь объясняют, как это сделать). Но есть много способов сделать это.