Как в Django при нажатии на кнопку на HTML-странице вызывать функцию python (файл views.py)
У меня есть HTML-страница, в которой есть кнопка "Ввести", при нажатии на которую вызывается функция "function saving_readings_in_the_DB(label_period)", а эта функция должна вызывать функцию "saving_readings_in_the_DB" Но функция saving_readings_in_the_DB не вызывается. Пожалуйста, помогите В принципе, вот здесь уже дан ответ на вопрос: https://stackoverflow.com/questions/59140343/django-how-to-call-a-python-function-from-html-button-without-reloading-page
Но из него непонятно, где функция python (которая находится в файле views.py) и не работает
<html>
<head>
<title>Квартира</title>
</head>
<meta name= "viewport" content= "width=device-width, initial-scale=1"> <!-- Эта строка подстраивает содержимое страницы под размер любого экрана (даже смартфорна) -->
<body>
<b>
<label id= "label_period" for= "label_meter_readings">Показания счётчиков за </label>
<button onclick= "button_back()"><<</button>
<label id= "label_period_2" for= "label_period_2">{{list_periods.2}}</label></td>
</b>
<button onclick= "button_next()">>></button>
<p>
<table>
<tr>
<td><label for= "field_1">Предыдущие</label></td>
<td><label for= "field_3">Текущие</label></td>
</tr>
<tr>
<td><input type= "text" id= "field_11" placeholder= "ХВС_пред"></td>
<td><input type= "text" id= "field_21" placeholder= "ГВС_тек"></td>
</tr>
<tr>
<td><input type= "text" id= "field_12" placeholder= "ХВС_пред"></td>
<td><input type= "text" id= "field_22" placeholder= "ГВС_тек"></td>
</tr>
</table>
</p>
<button onclick= "saving_readings_in_the_DB()">Ввести</button>
<br><br><br>
<i> <p><label for= "field_">За ___ были передыны __</label></p> </i>
<i> <label for= "field_3">За ___ были передыны: Пока не переданы</label> </i>
<br><br><br>
<table width= "340" frame= "box", rules="cols">
<colgroup>
<col span= "1" style= "background:Khaki">
</colgroup>
<tr>
<td>1</td>
<td>16.00</td>
<td>20,00</td>
</tr>
<tr>
<td>2</td>
<td>28.00</td>
<td>30,00</td>
</tr>
</table>
</body>
<script>
function saving_readings_in_the_DB(label_period)
{
var field_21 = document.getElementById("field_21").value;
var field_22 = document.getElementById("field_22").value;
window.location.href = "saving_readings_in_the_DB/?param1=" + label_period + "¶m2=" + field_21 + "¶m3=" + field_22
}
function button_back()
{
var label = document.getElementById("label_period_2");
label.innerHTML = '{{list_periods.0}}'
}
function button_next()
{
var label = document.getElementById("label_period_2");
label.innerHTML = '{{list_periods.1}}'
}
</script>
</html>
Файл views.py:
from django.
urls import path
from django.shortcuts import render
def index(request):
page = render(
request,
'App_for_browser/index.html',
{'data': '23131'})
return page
def openNext(request):
field1 = request.GET.get('param1')
field2 = request.GET.get('param2')
print(field1, field2)
list_periods = ['январь 2024', 'февраль 2024', 'март 2024']
page = render(
request,
'App_for_browser/openNext.html',
{'list_periods': list_periods}) # То, что до запятой - переменная, её название должно быть равно названию переменной в html-файл
if '' == '':
return page
else:
pass
def saving_readings_in_the_DB(request):
field_1 = request.GET.get('param1')
field_2 = request.GET.get('param2')
print(field_1, field_2)
Файл urls:
from django.contrib import admin
from django.urls import path
from App_for_browser.views import *
urlpatterns = [
path('', index, name= 'index'),
path('op
enNext/', openNext, name= 'openNext')]