【发布时间】:2022-01-08 05:24:23
【问题描述】:
我目前正在尝试做一些基本的事情,例如将用户输入的两个数字添加到页面上并在同一页面上显示结果,但我遇到了问题。
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")
]
当前网页输出
所需的网页输出 (同时保持输入的原始值)
感谢您的帮助:,)
编辑:
如果你想看这个......
更新 1:
使用来自@Marco 的代码(谢谢@Marco!)
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})
更新了 index.html
{% extends "project_long_page/base.html" %}
{% block body %}
<form action="." method="POST">
{% csrf_token %}
{{ form }}
<input type="submit">
<br>
The answer is {{ result }}!
</form>
{% endblock %}
【问题讨论】: