Ответ 1
Модели Django Form относятся не только к формам рендеринга, они больше относятся к обработке и дезинфекции формы (GET/POST) ввода, и это то, что вы хотите сделать. Когда данные POST или GET из вашего запроса AJAX доходят до вашего сервера, он по существу неотличим от данных формы. Я бы рекомендовал создать модель формы, которая является моделью вашего запроса AJAX.
Подумайте о примере POST:
POST /login.jsp HTTP/1.1
Host: www.mysite.com
User-Agent: Mozilla/4.0
Content-Length: 27
Content-Type: application/x-www-form-urlencoded
userid=joe&password=guessme
Это может быть связано с запросом AJAX или формой, к тому времени, когда он попадает на ваш сервер, это не имеет большого значения! Конечно, они называются Form-моделями, потому что обычно это происходит с данными GET или POST, но это не должно быть из формы:)
Если вы создаете модель формы для представления своего запроса AJAX, вы получаете все крючки и санитацию, которые приходят с ней, и все это немного больше "django-esque".
Обновить относительно вашего комментария:
Я предполагаю, что у вас будет несколько классов классов. Очевидно, я не знаю, как разработана ваша система, но я дам вам совет.
Как вы сказали, вы будете использовать это для дезинфекции своих данных, чтобы определить свои классы форм на основе данных, которые вы отправляете. Например, если у меня есть запрос AJAX, который отправляет комментарий с данными Name, Email и CommentBody, которые будут иметь один класс Form. Если у меня есть другой запрос AJAX, который отправляет новую статью, которая отправляет Title, Author и ArticleBody, которая будет другим классом Form.
Не все ваши запросы AJAX обязательно нуждаются в Форме, если у вас есть вызов AJAX, который голосует за комментарий, вы, вероятно, не будете рассматривать это как форму, поскольку (я предполагаю) вам не нужно будет санировать любые данные.