Дорогие все после нескольких дней боев, я решил попросить вас о помощи, так как django новичок я ..
Я пытался следовать этому Звонить Django на HTML нажатии кнопки безуспешно.
Область: Я хочу использовать представление django для отправки переменной, сгенерированной в одном сценарии js, который имеет формат json. Мне нужно отправить эти данные на внешний сервер, и, следовательно, я подумал, что мне потребуется запрос POST в представлениях (еще не включены). Чтобы все пошло как по маслу и началось откуда-то, я подумал, что после нажатия кнопки «Отправить» я могу загрузить новую страницу (points. html) только для того, чтобы увидеть, что данные восстанавливаются в views.py.
main html template (web_map. html):
{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>webmap</title>
</head>
<body>
<form id="options-form" autocomplete="off">
<label><input type="radio" name="interaction" value="draw" checked> Draw<br></label>
<label><input type="radio" name="interaction" value="modify"> Modify<br></label>
</form>
<form action="sendJson" method="GET">
{% csrf_token %}
<div id="submit-button">
<button class="btn btn-primary btn-sm" type="submit">Submit</button>
</div>
</form>
<script src="{% static 'dist/main.js' %}"></script>
</body>
</html>
My main. js:
var submitBtn = document.getElementById('submit-button');
submitBtn.addEventListener("click", function() {
var pointsJson = submitPoints(vectorPoint);
$.ajax({
type: "GET",
contentType: "application/json",
url: 'sendJson',
data: pointsJson,
dataType : "json",
success: function(result) {
console.log(result);
}
})
}
);
До этого я получаю мне нужны данные, но я не знаю, как отправлять баллы Json в django представление. Это данные, которые мне также необходимо отправить на внешний сервер.
urls.py:
from django.urls import path
from django.views.generic import TemplateView
from . import views
urlpatterns = [
path('',
TemplateView.as_view(template_name='web_map.html'), name='web_map'),
path('sendJson', views.sendJson),
]
views.py:
from django.shortcuts import render
import json
def web_map(request):
return render(request, 'web_map.html')
def sendJson(request):
points = {"point1": "123"}
return render(request, 'points.html', points)
баллов. html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Points</title>
</head>
<body>
{{ points }}
</body>
</html>
К сожалению, в настоящий момент я в замешательстве и буду очень признателен за любые подсказки по следующим вопросам:
- Как получить свои очки Json var в представлениях.
- Как я могу отправить его на внешний сервер, когда пользователь нажимает кнопку отправки?
Надеюсь, я достаточно аналитичен, и мой пример кода поможет. Большое спасибо за ваше время!
РЕДАКТИРОВАТЬ
Если вы пытаете код достаточно, он признается. Я нашел несколько ошибок и отредактировал код выше. К сожалению, до сих пор не решены проблемы.
Что касается использования правильного шаблона после нажатия кнопки отправки:
web_map. html: тег действия был перемещен в тег формы вместо будучи прикрепленным к кнопке.
Для восстановления переменной из индекса. js в views.py я добавил вызов ajax. До сих пор успеха не было .. и до сих пор остается вопрос о том, как перенести данные (при условии, что я получаю их в моем views.py) на внешний сервер.