Простая математика на одной веб-странице
В настоящее время я пытаюсь сделать что-то элементарное, например, сложить два числа, которые пользователь вводит на странице, и показать результат на той же странице, но сталкиваюсь с проблемами.
index.html
{% extends "project_long_page/base.html" %}
{% block body %}
<form action="." method="POST">
{% csrf_token %}
{{ forms }}
<input type="submit">
</form>
{% endblock %}
views.py
from django.shortcuts import render
import datetime
from django import forms
from django.shortcuts import render
class NewTaskForm(forms.Form):
num1 = forms.IntegerField(label="Number 1")
num2 = forms.IntegerField(label="Number 2")
# Create your views here.
def index(request):
return render(request, "project_long_page/index.html")
def add(request):
return render(request, "project_long_page/index.html", {
"form": NewTaskForm()
})
urls.py
from django.urls import path
from . import views
app_name = "project_long_page"
urlpatterns = [
path("", views.index, name="index")
]
Текущий вывод веб-страницы
Желаемый вывод веб-страницы (При сохранении исходных введенных значений)
Спасибо за помощь, если вы поможете :,)
Редактирование:
В случае, если вы хотите увидеть это...
Измените представление index() на:
def index(request):
if request.method == "POST":
form = NewTaskForm(request.POST)
if form.is_valid():
num1 = form.cleaned_data["num1"]
num2 = form.cleaned_data["num2"]
result = num1 * num2
context = {
"form": NewTaskForm(initial={"num1": num1, "num2": num2}),
"result": result
}
return render(request, "project_long_page/index.html", context)
form = NewTaskForm()
return render(request, "project_long_page/index.html", {"form": form})
Затем добавьте result
в ваш шаблон.
Не проверял, работает ли код