【问题标题】:Reset Django Form重置 Django 表单
【发布时间】:2016-11-23 15:08:31
【问题描述】:

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

我可以将表单提交到我的 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 上有一部分可以让我与开发人员一起改进我的项目/脚本?因为我一个人做这个项目,而且作为初学者,这非常困难:/

【问题讨论】:

  • 你的意思是创建后渲染一个空表单?
  • 在创建过程中,我想重置所有字段,而不是手动清理每个字段。
  • 您调用什么视图来显示您的表单?你能显示你的网址吗?
  • @ettanany 我用 urls.py 文件编辑了我的帖子
  • 提交之前!在提交之前清除所有字段以开始新的字段。不是重复的,因为所有答案都是提交后的..

标签: python mysql django


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您做错的是将表单传递给您获得一次的帖子值的上下文。您只需要在上下文之前调用表单。这样每次保存结果后都会显示空表单。

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

    【讨论】:

      猜你喜欢
      • 2012-07-18
      • 2014-05-31
      • 1970-01-01
      • 2021-04-03
      • 2015-12-12
      • 1970-01-01
      • 2012-09-21
      • 2019-01-08
      • 2021-01-05
      相关资源
      最近更新 更多