用Django生成表单

时间:2019-05-04 10:12:00

标签: django forms

我试图用Django生成表单,但没有想要的结果。我想要与Django中的这段代码等效。

我通过Django生成表单,但是当我打开inscription.html时没有任何反应。

以下是代码HTML:

这里是代码forms.py

class InscriptionForms(forms.Form):

    matricule               = forms.TextInput(attrs={'minlength':6, 'maxlength':7, 'id':'matricule', 'class':'form-control input-field bordure', 'placeholder':'Matricule', 'required':True });
    nom_utilisateur         = forms.TextInput(attrs={'min_length':4, 'max_length':20, 'id':'nom_utilisateur', 'class':'form-control input-field bordure', 'placeholder':'Nom utilisateur', 'required':True});
    nom                     = forms.TextInput(attrs={'min_length':3, 'max_length':40, 'id':'nom', 'class':'form-control input-field bordure', 'placeholder':'Nom', 'required':True});
    prenom                  = forms.TextInput(attrs={'min_length':3, 'max_length':40, 'id':'prenom', 'class':'form-control input-field bordure', 'placeholder':'Prénom','required':True});
    adresse_electronique    = forms.EmailInput(attrs={'id':'email', 'class':'form-control input-field bordure', 'placeholder':'Adresse électronique','required':True});
    num_telephone           = forms.TextInput(attrs={'min_length':3, 'max_length':20, 'id':'numero_tel', 'class':'form-control input-field bordure', 'placeholder':'Numéro téléphone','required':True});
    filiere                 = forms.Select(choices=CHOIX_FILIERE);
    niveau                  = forms.Select(choices=CHOIX_NIVEAU);
    mdp                     = forms.PasswordInput(attrs={'min_length':6, 'id':'mdp', 'class':'form-control input-field bordure', 'placeholder':'Mot de passe','required':True});

    #matricule.render('matricule','matricule');
    #nom_utilisateur.render('nom_utilisateur', 'nom_utilisateur');
    #nom.render('nom', 'nom');
    #prenom.render('prenom', 'prenom');
    #adresse_electronique.render('adresse_electronique', 'adresse_electronique');
    #num_telephone.render('telephone', 'telephone');
    #filiere.render('filiere', None);
    #niveau.render('niveau', None);
    #mdp.render('mdp', 'mdp');

这是views.py

def inscription(request):

    if request.method == 'POST':    # S'il s'agit d'une requete "post" pour se connecter
        form    = InscriptionForms(request.POST);
        if form.is_valide():

            return redirect('felyn/connexion.html');

        else:
            messages.error(request, "Erreur, nom d'utilisateur ou mot de passe erroné !");

    form    = InscriptionForms();   
    return render(request, 'felyn/authen/inscription.html', {'form':form});

这里是inscription.html

<form method="post">
      {% csrf_token %} {{ form.non_field_errors }} 
     <div class="form-group">
       {{ form.matricule.errors }} {{ form.matricule }} 
     </div> 
     <div class="form-group">
       {{ form.nom_utilisateur.errors }} {{ form.nom_utilsateur }} 
     </div> 
     <div class="form-group">
       {{ form.nom.errors }} {{ form.nom }} 
     </div> 
     <div class="form-group">
       {{ form.prenom.errors }} {{ form.prenom }} 
     </div> 
     <div class="form-group">
       {{ form.adresse_electronique.errors }} {{ form.electronique }} 
     </div> 
     <div class="form-group">
       {{ form.num_telephone.errors }} {{ form.num_telephone }} 
     </div> 
     <div class="form-group">
       {{ form.filiere.errors }} {{ form.filiere }} 
     </div> 
     <div class="form-group">
       {{ form.niveau.errors }} {{ form.niveau }} 
     </div> 
     <div class="form-group">
       {{ form.mdp.errors }} {{ form.mdp }} 
     </div> 
     <div class="form-group"> 
      <button class="btn btn-primary btn-block">S'inscrire</button> 
     </div> 
    </form> 

0 个答案:

没有答案