重置Django表单

时间:2016-11-23 15:08:32

标签: python mysql django

我想知道在完成表格时如何清除(重置)表格?

我可以将表单提交到我的MySQL数据库,我认为重置过程是相同的,但显然没有。我只想补充一点,我真的被Django困住了,我每天都在学习很多教程。

<!--DOCTYPE html -->
<html>

<body>

<h1 align="center"> Formulaire d'acte de naissance </h1>

<form method='POST' action=''> {% csrf_token %}

<h3> Partie contenant les informations de l'enfant</h3>
{{ Cform.as_ul}} <!-- Display child part formulary -->
{{ value|date:"%d/%m/%Y" }}
{{ value|time:"H:M" }}

<h3> Partie contenant les informations des parents </h3>
{{ Pform.as_ul }} <!-- Display parent part formulary -->
{{ value|date:"%d/%m/%Y" }}

<br></br>

<input type ="submit" value="Valider le formulaire" />
<input type ="reset" value="Reset" />

</form>

</body>
</html>

这是我的views.py文件:

#-*- coding: utf-8 -*-

from django.shortcuts import render
from django.http import HttpResponseRedirect, HttpResponse
from django.template import loader
from .models import Child, Parent
from .forms import ChildForm, ParentForm

# Create your views here.

def BirthCertificateAccueil(request) :
    # Fonction permettant de créer la page d'accueil de la rubrique Acte de Naissance 

    #Cherche le fichier html accueil et le renvois
    template = loader.get_template('accueil.html') 
    return HttpResponse(template.render(request))

def Formulary(request) :
    # Fonction permettant de créer le formulaire Acte de Naissance et le remplissage

        Cform = ChildForm(request.POST or None) 
        Pform = ParentForm(request.POST or None)

        if Cform.is_valid() and Pform.is_valid() :   # Vérification sur la validité des données
            Cform.save()
            Pform.save()

        context = {
            "Cform" : Cform,
            "Pform" : Pform,
           }

        return render(request, 'birthform.html', context)

这是我的urls.py:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^accueil$', views.BirthCertificateAccueil),
    url(r'^formulaire$', views.Formulary),
]

这是一种完全错误的方法还是我错过了什么?

谢谢;)

PS:在Stack上有一个部分我可以用开发人员改进我的项目/脚本吗?因为我独自制作这个项目,而且作为初学者,这很难:/

My localhost BirthCertificate page

2 个答案:

答案 0 :(得分:1)

习惯上使用Post/Redirect/Get进行表单提交。您所缺少的是在成功验证提交的表单值之后进行的重定向:

if Cform.is_valid() and Pform.is_valid() :
    Cform.save()
    Pform.save()
    return redirect('/formulaire')  # <- This.

答案 1 :(得分:0)

你做错了是将表单传递给你得到一次的post值的上下文。你只需要在上下文之前调用表单。这样每次保存结果后它都会显示空表格。

 if Cform.is_valid() and Pform.is_valid() :   
     Cform.save()
     Pform.save()
 Cform = ChildForm() 
 Pform = ParentForm()   
 context = {
        "Cform" : Cform,
        "Pform" : Pform,
       }