В моем html-файле есть кнопка, которая при щелчке выполняет некоторые вычисления и post
вызывает один из моих API с некоторыми параметрами, а затем из django
Я извлекаю параметры и помещаю их в определенные заполнителишаблон и сделать шаблон.
Проблема в том, что я вижу, что шаблон отображается (если я проверяю раздел 'network' в Google inspect element
), но я ничего не вижу на странице.Я ожидаю, что шаблон будет отображен на новой вкладке со значениями, которые я выбрал из параметров post
, помещенных в соответствующие заполнители в шаблоне.
Вот что я отправляю через ajax post
(я использую angular js
в моем проекте, но я также могу сделать это с обычным js)
var toSend = {
"user": username,
"password": password,
"text": text
"context": $scope.newContext,
}
$http({
method: 'POST',
url: '/correction',
data: toSend
}).
then(function(response) {
console.log(response.data);
})
Вот моя django
функция, определенная для API, который получает post
запрос
@csrf_exempt
def get_correction(request):
if request.method == 'POST':
context = {}
try:
print("recieved request")
user_request = json.loads(request.body.decode('utf-8'))
'''
some logic I use to check given the
username and password, whether it is a
valid user or not
'''
text_header = user_request.get("text")
userid = user_request.get("user")
context["userid"] = userid
context["text_header"] = text_header
except Exception as e:
print(e)
return render(request, 'correction_page.html', context)
Здесь я сохраняю текст и пользователя в словаре context
для отправки вместе с correction_page.html
.
Вот как выглядит моя страница коррекции
<!DOCTYPE html>
{% load static %}
<html>
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
</head>
<body>
<h1>Welcome!</h1>
<span> {{text_header}} </span>
<script type="text/javascript" src="{% static 'js/fetch_info.js' %}"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> -->
</body>
</html>
Здесьtext_header
заполнитель действительно получает значение (как я вижу в Google chrome
разделе сети в элементе inspect.)
Но в пользовательском интерфейсе я не вижу, чтобы что-то происходило.Я надеялся, что шаблон будет отображаться на новой вкладке, но ничего не происходит.
Что я делаю не так?