Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用Django中的form.cleaned_data.get()将数据从视图传递到成功模板?_Python_Django_Django Views_Django Forms_Django Templates - Fatal编程技术网

Python 如何使用Django中的form.cleaned_data.get()将数据从视图传递到成功模板?

Python 如何使用Django中的form.cleaned_data.get()将数据从视图传递到成功模板?,python,django,django-views,django-forms,django-templates,Python,Django,Django Views,Django Forms,Django Templates,我正在建立一个基本的新冠病毒检测预约系统。一切正常;我从用户那里获取表单中的数据,并将其保存到数据库中。但我试图在表单成功页面上显示一些数据。例如,用户在单击提交按钮后以表单形式输入其详细信息,如姓名、数据、时间等。我希望表单的名称、日期和时间显示在成功页面上。我甚至尝试过这个,但我得到了一个错误,比如: NoReverseMatch at/covid_试验 找不到参数“({'name':'Popes','test_date':datetime.date(2021,4,23),'test_tim

我正在建立一个基本的新冠病毒检测预约系统。一切正常;我从用户那里获取表单中的数据,并将其保存到数据库中。但我试图在表单成功页面上显示一些数据。例如,用户在单击提交按钮后以表单形式输入其详细信息,如姓名、数据、时间等。我希望表单的名称、日期和时间显示在成功页面上。我甚至尝试过这个,但我得到了一个错误,比如:

NoReverseMatch at/covid_试验 找不到参数“({'name':'Popes','test_date':datetime.date(2021,4,23),'test_time':datetime.time(18,0)},”)的“success”的相反项。已尝试1个模式:[“成功$”]

以下是错误的屏幕截图:

下面是我的代码:

型号.py

from django.db import models

# Create your models here.
class Covid_Test_Model(models.Model):
    gender_chooice = [
        ('Male', 'Male'),
        ('Female', 'Female')
    ]
    name = models.CharField(max_length=100, null=False)
    age = models.IntegerField(null=False)
    gender = models.CharField(max_length=20, choices=gender_chooice, default='Male', null=False)
    phone = models.CharField(max_length=15, null=False)
    email = models.EmailField(max_length=100, null=False)
    adhaar_no = models.CharField(max_length=16, null=False)
    address = models.TextField(null=False)
    date = models.DateField(null=False)
    Time = models.TimeField(auto_now=False, auto_now_add=False, null=False)

    def __str__(self) -> str:
        return self.name
from django.shortcuts import render, redirect

# Create your views here.
from covid_test_app.forms import Covid_Test_Form


def covid_test(request):
    if request.method == 'POST':
        form = Covid_Test_Form(request.POST)
        if form.is_valid():
            form.save()
            name = form.cleaned_data.get("name")
            test_date = form.cleaned_data.get("date")
            test_time = form.cleaned_data.get("Time")
            print(name)
            c = {
                'name': name,
                'test_date': test_date,
                'test_time': test_time
            }
            return redirect('success', c)
    else:
        form = Covid_Test_Form()
        context = {
            'form': form,
        }
    return render(request, 'covid_test.html', context)
from django import forms
from django.forms import fields
from .models import Covid_Test_Model

class Covid_Test_Form(forms.ModelForm):
    class Meta:
        model = Covid_Test_Model
        fields = ["name", "age", "gender", "phone", "email", "adhaar_no", "address", "date", "Time"]

        widgets = {
            "name": forms.TextInput(attrs={'class': 'form-control'}),
            "age": forms.TextInput(attrs={'class': 'form-control', 'type': 'number'}),
            "gender": forms.Select(attrs={'class': 'form-control'}),
            "phone": forms.TextInput(attrs={'class': 'form-control', 'type': 'number'}),
            "email": forms.TextInput(attrs={'class': 'form-control'}),
            "adhaar_no": forms.TextInput(attrs={'class': 'form-control'}),
            "address": forms.Textarea(attrs={'class': 'form-control', 'rows': 2}),
            "date": forms.TextInput(attrs={'class': 'form-control'}),
            "Time": forms.TextInput(attrs={'class': 'form-control'}),
        }
视图.py

from django.db import models

# Create your models here.
class Covid_Test_Model(models.Model):
    gender_chooice = [
        ('Male', 'Male'),
        ('Female', 'Female')
    ]
    name = models.CharField(max_length=100, null=False)
    age = models.IntegerField(null=False)
    gender = models.CharField(max_length=20, choices=gender_chooice, default='Male', null=False)
    phone = models.CharField(max_length=15, null=False)
    email = models.EmailField(max_length=100, null=False)
    adhaar_no = models.CharField(max_length=16, null=False)
    address = models.TextField(null=False)
    date = models.DateField(null=False)
    Time = models.TimeField(auto_now=False, auto_now_add=False, null=False)

    def __str__(self) -> str:
        return self.name
from django.shortcuts import render, redirect

# Create your views here.
from covid_test_app.forms import Covid_Test_Form


def covid_test(request):
    if request.method == 'POST':
        form = Covid_Test_Form(request.POST)
        if form.is_valid():
            form.save()
            name = form.cleaned_data.get("name")
            test_date = form.cleaned_data.get("date")
            test_time = form.cleaned_data.get("Time")
            print(name)
            c = {
                'name': name,
                'test_date': test_date,
                'test_time': test_time
            }
            return redirect('success', c)
    else:
        form = Covid_Test_Form()
        context = {
            'form': form,
        }
    return render(request, 'covid_test.html', context)
from django import forms
from django.forms import fields
from .models import Covid_Test_Model

class Covid_Test_Form(forms.ModelForm):
    class Meta:
        model = Covid_Test_Model
        fields = ["name", "age", "gender", "phone", "email", "adhaar_no", "address", "date", "Time"]

        widgets = {
            "name": forms.TextInput(attrs={'class': 'form-control'}),
            "age": forms.TextInput(attrs={'class': 'form-control', 'type': 'number'}),
            "gender": forms.Select(attrs={'class': 'form-control'}),
            "phone": forms.TextInput(attrs={'class': 'form-control', 'type': 'number'}),
            "email": forms.TextInput(attrs={'class': 'form-control'}),
            "adhaar_no": forms.TextInput(attrs={'class': 'form-control'}),
            "address": forms.Textarea(attrs={'class': 'form-control', 'rows': 2}),
            "date": forms.TextInput(attrs={'class': 'form-control'}),
            "Time": forms.TextInput(attrs={'class': 'form-control'}),
        }
Forms.py

from django.db import models

# Create your models here.
class Covid_Test_Model(models.Model):
    gender_chooice = [
        ('Male', 'Male'),
        ('Female', 'Female')
    ]
    name = models.CharField(max_length=100, null=False)
    age = models.IntegerField(null=False)
    gender = models.CharField(max_length=20, choices=gender_chooice, default='Male', null=False)
    phone = models.CharField(max_length=15, null=False)
    email = models.EmailField(max_length=100, null=False)
    adhaar_no = models.CharField(max_length=16, null=False)
    address = models.TextField(null=False)
    date = models.DateField(null=False)
    Time = models.TimeField(auto_now=False, auto_now_add=False, null=False)

    def __str__(self) -> str:
        return self.name
from django.shortcuts import render, redirect

# Create your views here.
from covid_test_app.forms import Covid_Test_Form


def covid_test(request):
    if request.method == 'POST':
        form = Covid_Test_Form(request.POST)
        if form.is_valid():
            form.save()
            name = form.cleaned_data.get("name")
            test_date = form.cleaned_data.get("date")
            test_time = form.cleaned_data.get("Time")
            print(name)
            c = {
                'name': name,
                'test_date': test_date,
                'test_time': test_time
            }
            return redirect('success', c)
    else:
        form = Covid_Test_Form()
        context = {
            'form': form,
        }
    return render(request, 'covid_test.html', context)
from django import forms
from django.forms import fields
from .models import Covid_Test_Model

class Covid_Test_Form(forms.ModelForm):
    class Meta:
        model = Covid_Test_Model
        fields = ["name", "age", "gender", "phone", "email", "adhaar_no", "address", "date", "Time"]

        widgets = {
            "name": forms.TextInput(attrs={'class': 'form-control'}),
            "age": forms.TextInput(attrs={'class': 'form-control', 'type': 'number'}),
            "gender": forms.Select(attrs={'class': 'form-control'}),
            "phone": forms.TextInput(attrs={'class': 'form-control', 'type': 'number'}),
            "email": forms.TextInput(attrs={'class': 'form-control'}),
            "adhaar_no": forms.TextInput(attrs={'class': 'form-control'}),
            "address": forms.Textarea(attrs={'class': 'form-control', 'rows': 2}),
            "date": forms.TextInput(attrs={'class': 'form-control'}),
            "Time": forms.TextInput(attrs={'class': 'form-control'}),
        }
Success.html这是我想显示上一页填写表单的用户数据的地方

{% extends 'base.html' %}
{% load static %}
{% block extrahead %}
    <link href="{% static 'styles/success.css' %}" rel="stylesheet">
{% endblock %}

{% block content %}

    <div class="container-fluid bg">
  <div class="card-container">
  <div class="bigcard">
    <div class="mx-5 my-5 d-flex flex-column justify-center">
            <h4 class="text-center my-3 display-4 text-info">Success!</h4>
                {# here I am accessing data that I passed as dictionary from my views #}
    <p class="text-center lead">Dear {{ name }} your covid test appointment has been book on {{ test_date }} at {{ test_time }}</p>
      <a type="submit" href="{% url 'home' %}" class="btn btn-info text-white my-4">Back To Home</a>
      </div>
    </div>
  </div>

  </div>

{% endblock %}
{%extends'base.html%}
{%load static%}
{%block extrahead%}
{%endblock%}
{%block content%}
成功!
{#这里我正在访问作为字典从视图传递的数据#}
亲爱的{{name}您的新冠病毒检测预约已于{{test_date}}于{test_time}预约

{%endblock%}
您可以在会话变量中设置插入的模型ID,重定向,然后从该会话变量中查找模型并显示信息,而不是通过URL发送名称、日期和时间。@TimNyborg这是我没有听说过的,我是django和web的新手。你能和我分享一些教程或资源吗?Django自己的文档是一个很好的地方,尤其是在re。在视图中设置和使用会话值: