[PYTHON] Correspondance de l'événement selon lequel le résultat de form.is_valid () est toujours False dans le système Django2

Evénements et environnement

un événement

** is_valid ** a été exécuté par la méthode ** post ** de la classe ** View ** écrite en ** views.py **. Le résultat de ** is_valid ** est ** False ** quel que soit le type d'entrée effectué sur le navigateur WEB.

La méthode de validation n'est pas implémentée dans forms.py.

Ce qui suit est un extrait du code source. Il existe une classe ** Meta ** dans la classe ** Form **, mais il s'agit d'une reconnaissance qui n'a rien à voir avec cet événement.

views.py


class View(View):
    def post(self, request, *args, **kwargs):
        form = Form()
        is_valid = form.is_valid()
        print(is_valid)
        ...

forms.py


class Form(forms.ModelForm):
    class Meta:
        model = ExperimentResult
        fields = ("title", "comment",)
        widgets = {
            'title' : forms.TextInput(attrs={'class':'text_area'}),
            'comment' : forms.TextInput(attrs={'class':'text_area'})
        }

environnement

L'environnement d'exécution est ** django 2.2.12 **, python3.7, Windows 10.

Cause

Lors de l'instanciation de la classe Form, il est supposé qu'il y a une "demande" dans le premier argument de la méthode init.

Lors de l'écriture de form = FormClass (), "request" n'est pas passé à la méthode init. Par conséquent, lorsque la méthode "is_valid" est exécutée, une erreur de validation se produit car "request" n'est pas passée et False est toujours renvoyé.

Correspondance

Insérez data = request.POST comme argument lors de l'instanciation de la classe Form.

views.py


class View(View):
    def post(self, request, *args, **kwargs):
        form = Form(data=request.POST)
        is_valid = form.is_valid()
        print(is_valid)
        ...

Après avoir pris les mesures ci-dessus, j'ai confirmé que True reviendrait.

référence

https://stackoverflow.com/questions/20801452/django-form-is-valid-always-false

Recommended Posts

Correspondance de l'événement selon lequel le résultat de form.is_valid () est toujours False dans le système Django2
Le résultat de l'installation de python sur Anaconda
Afficher le résultat du traitement de la géométrie en Python
L'histoire de l'affichage des fichiers multimédias dans Django
[Django] Essayons de clarifier la partie de Django qui était en quelque sorte à travers le test
En voici une, je vais résumer les applications équipées "d'intelligence artificielle" qui m'intéressaient
Linux est quelque chose comme ça en premier lieu
Code qui définit les valeurs par défaut en cas d'AttributeError
J'ai participé à l'activité de traduction du document officiel Django
Mesurons le résultat de l'exécution du programme avec C ++, Java, Python.
Le résultat de l'apprentissage automatique des ingénieurs Java avec Python www
Maintenance de l'environnement de développement Django + MongoDB (en cours d'écriture)
Résumé des points d'achoppement à Django pour la première fois
Afficher les horaires du système de localisation des bus Morioka dans Pythonista
Y a-t-il un biais dans les nombres qui apparaissent dans les nombres de Fibonacci?
L'histoire selon laquelle Fabric ne peut pas obtenir le code d'état au milieu du tube dans le script shell
Python Priority Queue Le mystère du résultat de la fonction heapify qui ne intéresserait pas la plupart des gens