显示Django表单结果

2024-07-04 07:45:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Django表单(ModelForm),它有很多字段。当用户按submit时,这些信息将保存到数据库中。我正在努力解决的是,如何在其他HTML页面中输出/呈现这些结果。在

在py模型在

from django.db import models

# Create your models here.
class Contract(models.Model):
    name = models.CharField(max_length=200)
    doorNo = models.SlugField(max_length=200)
    Address = models.TextField(blank=True)

在表单.py在

^{pr2}$

在视图.py在

from django.shortcuts import render
from contracts.forms import GenerateContract

# Create your views here.
def index(request):
    return render(request, 'contracts/index.html')

def contractview(request):
    form = GenerateContract()
    if request.method == "POST":
        form = GenerateContract(request.POST)
        if form.is_valid():
            form.save(commit=True)
            return index(request)
        else:
            print('ERROR')
    return render(request,'contracts/contracts.html',{'form':form})

目前,我将返回应用程序的“索引”主页作为占位符。在


Tags: djangofrompyimportform表单yourindex
2条回答

验证后,表单数据在form.cleaned_data字典中找到。因此,您可以将其传递回模板,并根据需要显示它。在

from django.shortcuts import render
from contracts.forms import GenerateContract

# Create your views here.
def index(request):
    return render(request, 'contracts/index.html')

def contractview(request):
    form = GenerateContract()
    if request.method == "POST":
        form = GenerateContract(request.POST)
        if form.is_valid():
            form.save(commit=True)
            return render(request,'contracts/contracts.html',{'form_data': form.cleaned_data})
        else:
            print('ERROR')
    return render(request,'contracts/contracts.html',{'form':form})

如果要用保存的值显示表单,可以用表单呈现模板并填充实例输入。像这样:

from django.shortcuts import render
from contracts.forms import GenerateContract

# Create your views here.
def index(request):
    return render(request, 'contracts/index.html')

def contractview(request):
    form = GenerateContract()
    if request.method == "POST":
        form = GenerateContract(request.POST)
        if form.is_valid():
            saved_instance = form.save(commit=True)
            return render(request,'contracts/contracts.html',{'form':GenerateContract(instance=saved_instance)})
        else:
            print('ERROR')
    return render(request,'contracts/contracts.html',{'form':form})

相关问题 更多 >

    热门问题