# Упрощение динамической веб-разработки с Django и HTMX (Часть 4): Как передавать данные (payload)? При использовании `fetch` для Ajax-запросов в традиционном JavaScript для отправки POST-запросов обычно формируют полезную нагрузку (payload) вручную, используя `JSON.stringify()`. Примерно так: ```JavaScript fetch("/api/todos/", { method: "POST", headers: { "Content-Type": "application/json", "X-CSRFToken": csrftoken }, body: JSON.stringify({ title: "장보기", done: false, priority: 3 }) }) ``` А что насчет **HTMX**? Как `hx-post` отправляет данные на сервер? Многие примеры демонстрируют лишь очень простые функции, поэтому найти практические примеры отправки сложной полезной нагрузки на удивление сложно. В этом посте мы полностью разберем методы передачи данных в HTMX и способы их обработки на сервере.  ------ ## Методы передачи данных в HTMX {#sec-1f930b1a0dad} **Подход к полезной нагрузке в `fetch` и методы передачи данных в `hx-post` значительно различаются.** В `fetch` разработчик создает объект напрямую и преобразует его в JSON для помещения в тело запроса. В отличие от этого, **HTMX по умолчанию собирает и отправляет значения из DOM**. Философия HTMX ближе не к "прямому формированию JS-объектов", а к **"сбору значений из HTML-элементов для формирования параметров запроса"**. Для этого обычно используются следующие три способа: ### 1) Сбор и отправка значений на основе формы {#sec-f5086851ac19} Это наиболее HTML-ориентированный способ, который хорошо подходит для Django. ```html
``` В этом случае HTMX собирает значения полей ввода внутри формы и включает их в запрос. Стандартное кодирование — это `URL-encoded form data`, как при обычной отправке формы. В представлении Django вы можете получить их как обычно: ```Python def create_todo(request): title = request.POST.get("title") priority = request.POST.get("priority") done = request.POST.get("done") ``` ### 2) Включение значений из других элементов без формы: `hx-include` {#sec-a2c0e1f9e1ca} Используется, когда вы хотите прикрепить `hx-post` к одной кнопке, но выборочно отправить значения из удаленных полей ввода. ```HTML ``` `hx-include` включает значения указанных элементов в запрос. Это очень удобно, когда полей ввода немного, так как позволяет получить результат, похожий на полезную нагрузку, без необходимости оборачивать все в `