首页 > 解决方案 > 如何在同一 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
    })

标签: pythonhtmldjangodjango-formsweb-frameworks

解决方案


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>

推荐阅读