IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

Django - validation formulaire et affichage des erreurs


Sujet :

Django Python

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 423
    Points : 133
    Points
    133
    Par défaut Django - validation formulaire et affichage des erreurs
    Bonjour,

    J'ai un formulaire à base de bootstrap. Quand je le valide, je voudrais tester les champs remplis. Si c'est OK, j'écris les données dans un fichier que l'utilisateur télécharge, sinon, j'affiche les erreurs trouvées (dans une page html spécifique, ou idéalement dans une boite de dialogue modale).

    dans ma vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    def mainform(request):
        if request.method == 'POST':
            items = dict(request.POST.items())
     
            # contrôle des données
            valide = True
            msg = ""
            if items["champ1"] == "":
                msg += "champ1 non valide"
                valide = False
            if items["champ2"] == "0":
                msg += "champ2 non valide"
                valide = False
     
            if valide:
                string2write = formate(champ1, champ2)
     
                response = HttpResponse(string2write,
                    content_type="text/plain",
                    headers={"Content-Disposition": 'attachment; filename="errors.txt"'},
                )
     
                return response
     
            else:
                render(request, 'errors.html', {"errors": msg})
     
        else:
            return render(request, 'mainform.html')
    et j'ai un template errors.html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <!DOCTYPE html>
    {% extends "base.html" %}
    {% load static %}
     
    {% block css %}
    <link rel="stylesheet" href="{% static 'css/custom.css' %}" type="text/css">
    {% endblock css %}
     
    {% block content %}
    <div>
    {{errors}}
    </div>
    {% endblock content %}
    Si je valide et que mon formulaire a des erreurs, au lieu d'afficher la page erreurs.html, j'ai l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The view monappli.views.mainform didn't return an HttpResponse object. It returned None instead.
    Qu'est ce cloche?

    et dans un deuxième temps, comment afficher les erreurs dans une boite modale au lieu de les afficher sur une page html.

    Merci,
    Nico

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 122
    Points : 4 491
    Points
    4 491
    Par défaut
    bonjour

    texte d'erreur pourtant bien explicite !
    monappli.views.mainform didn't return an HttpResponse object. It returned None instead.
    il manque un return (ligne 26)

    ---------
    NOTE
    la variable valide est ici complétement inutile, tu peux juste faire un if not msg : ligne 15
    $moi= ( !== ) ? : ;

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 423
    Points : 133
    Points
    133
    Par défaut
    erreur bête ! désolé.

    comment faire pour afficher ma page errors dans une message box modale?

    Nico

Discussions similaires

  1. Affichage des erreurs de formulaires
    Par vladimire dans le forum Langage
    Réponses: 4
    Dernier message: 01/04/2010, 20h40
  2. [1.x] Séparer l'affichage des erreurs de formulaires
    Par nims dans le forum Symfony
    Réponses: 6
    Dernier message: 06/11/2009, 11h09
  3. [1.x] Modification de l'affichage des erreurs des formulaires
    Par asmodaiii dans le forum Symfony
    Réponses: 5
    Dernier message: 10/09/2009, 16h42
  4. Réponses: 3
    Dernier message: 19/09/2007, 17h11
  5. [Struts Validator] probleme affichage des erreurs
    Par Morpheus2144 dans le forum Struts 1
    Réponses: 7
    Dernier message: 24/01/2006, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo