Я хотел бы отобразить данные из представления после расчета в шаблон.Представление собирает данные из формы Django, а затем выполняет простой расчет.Однако функция не перенаправляет на шаблон.
views.py
from . import forms
from django.http import HttpResponseRedirect
from django.shortcuts import render,redirect
def index(request):
form = forms.InputForm()
return render(request, 'index.html', {'form': form})
def addition(a,b):
c = a + b
return c
def input_form_Addition(request):
if request.method == 'post':
form = forms.InputForm(request.POST)
if form.is_valid():
input1 = form.cleaned_data['input1']
input2 = form.cleaned_data['input2']
total = addition(input1,input2)
return render(request, 'output.html', {'total': total})
else:
form = forms.InputForm()
Шаблон (output.html) выглядит следующим образом:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Forms</title>
</head>
<body>
<p>The Sum is {{ total }}</p>
</body>
</html>
Моя URL-маршрутизация выглядит следующим образом:
from django.urls import path
from .views import index
from simple_addition import views
urlpatterns = [
path('', views.index, name='index'),
path('output/', views.input_form_Addition, name='output')
]
Моя форма Django хорошо отображается и выглядит следующим образом.
forms.py из форм импорта django
class InputForm(forms.Form):
input1 = forms.FloatField()
input2 = forms.FloatField()
И отображается по адресу:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Forms</title>
</head>
<body>
<h2>Addition Page</h2>
<p>Fill in two numbers to get their sum</p>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Add" >
</form>
</body>
</html>