如何在同一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,{
        "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,{
        "result": form
    })

并访问您模板中的"emp/users.html"中的这些值。您可以使用django-template-language语法,如下所示:

<p>{{ first_name }} </p>
<p>{{ last_name }}</p>