Вы можете использовать клавишу data
в запросе JS ajax
для передачи параметров в запросах get
и post
.
Примечание. При отправке форм с использованием Django вам нужно захватить csrf token
и установить его в качестве заголовка X-CSRFToken
. Вы можете использовать следующий код, предоставленный в Django самих Документах, здесь .
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie !== '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i].trim();
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) === (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
$('.pole').change('input', function() {
var datetime = $(this).val();
var cookie = getCookie('csrftoken')
$.ajax({
url: '/your-url/',
headers: {'X-CSRFToken': cookie},
type: 'get', // can be 'post' as well or anything else you'd want such as 'put', 'patch', etc'
data: {'datetime': datetime},
success: function(e){
console.log(e)
},
error: function(e){
console.log(e);
}
})
});
views.py
def time(request):
if request.method == "GET":
date = Registration.objects.filter(date_visit=date_use)
# you can get the value from the JS using the `key` in `data` attribute of `ajax request`
data_from_form = request.GET.get('datetime')
# if you have multiple inputs coming your way for example if there's a list of inputs you're getting you can use
data_from_form = request.GET.getlist('datetime')
time_list=[]
for a in date:
time_list.append(date.time_visit)
return JsonResponse({'time_list':time_list})
Примечание. Возможно, вам придется использовать ajax request
на нескольких страницах, копирование и вставка функции getCookie
на каждой странице очень контрпродуктивно. Вместо этого вы можете вставить этот код в новый файл с именем utils.js
и импортировать этот файл в base.html
. Имейте в виду, что импортное позиционирование для utils.js
. Если вам нужно использовать функции внутри него в другом скрипте, вам нужно импортировать этот конкретный скрипт ниже utils.js
base. html
{% load static %}
<html>
<head>
</head>
<body>
<script src="{% static '/js/utils.js' %}" type='text/javascript'></script>
</body>
</html>