python - 如何在同一 HTML 页面中显示来自 django 表单的用户提交的值
问题描述
我想在同一个 HTML 页面中显示用户提交的值。我能够显示这些值,但它采用 python 字典格式。我得到了结果:'first_name': 'Tom', 'last_name': 'Hanks'}
,有没有办法分别只显示名字和姓氏。
这是views.py:
from django.shortcuts import render
from django import forms
class DbNames(forms.Form):
first_name = forms.CharField(label="First Name")
last_name = forms.CharField(label="Last Name")
def index(request):
return render(request, "emp/index.html")
def form_gen(request):
form = DbNames()
if request.method == "POST":
form = DbNames(request.POST)
if form.is_valid():
return render(request, "emp/users.html", {
"form_data": form.cleaned_data
})
else:
print('ERROR')
return render(request, "emp/users.html", {
"result": form
})
解决方案
def form_gen(request):
form = DbNames()
if request.method == "POST":
form = DbNames(request.POST)
if form.is_valid():
# Because form.cleaned_data return a dict
first_name = form.cleaned_data['first_name']
last_name = form.cleaned_data['last_name']
return render(request, "emp/users.html", {
"first_name": first_name, "last_name": last_name,
})
else:
print('ERROR')
return render(request, "emp/users.html", {
"result": form
})
并在您的情况下访问您的模板中的这些值"emp/users.html"
。您可以像这样使用 django-template-language 语法:
<p>{{ first_name }} </p>
<p>{{ last_name }}</p>