django: посчитать разницу между датами
Нужно посчитать кол-во дней между датами, которые водятся клиентом сайта, при этом не заносить их в базу данных
Вот мой html код:
{% load crispy_forms_tags %}
<body>
<form method="post">
{% csrf_token %}
<p>
От: <input type="date" name="date_from">
</p>
<p>
До: <input type="date" name="date_befor">
</p>
<input type="submit" value="Отправить">
</form>
</body>
Код views.py
from django.views.generic import View
class IndexView(View):
def post(self, request, *args, **kwargs):
if request.method == 'POST':
date_from = request.POST['date_from']
date_before = request.POST['date_before']
return render(request, 'index.html')
Мне нужно получить разницу между date_from и date_before, но у меня не получается их взять у клиента даже. При нажатии на кнопку получаю следующие ошибки
Method Not Allowed (POST): /
Method Not Allowed: /
[02/Apr/2021 09:55:04] "POST / HTTP/1.1" 405 0
Ответы (1 шт):
Автор решения: Vadim.Sharoikin
→ Ссылка
как по мне то использование формы django в данном примере избыточно. Проще сделать так
<form method="post">
{% csrf_token %}
<p>
От: <input type="date" name="start_date" >
</p>
<p>
До: <input type="date" name="end_date" >
</p>
<input type="submit" value="Отправить">
</form>
Для каждого инпута в форме нужно задать уникальный атрибут name чтобы получить доступ во views
и во views
from django.views.generic import View
class IndexView(View):
def post(self, request, *args, **kwargs):
if request.method == 'POST':
delta_time = request.POST['start_date'] - request.POST['end_date']
return render(request, 'index.html',{'delta_time':delta_time })
def get(self, request, *args, **kwargs):
return render(request, 'index.html')
и дальше уже в шаблоне вывести delta_time в нужном месте