[PYTHON] Entsprechung des Ereignisses, dass das Ergebnis von form.is_valid () im Django2-System immer falsch ist

Ereignisse und Umwelt

Veranstaltung

** is_valid ** wurde von der ** post ** -Methode der ** View ** -Klasse ausgeführt, die in ** views.py ** geschrieben wurde. Das Ergebnis von ** is_valid ** ist ** False **, unabhängig davon, welche Art von Eingabe im WEB-Browser erfolgt.

Die Validierungsmethode ist in forms.py nicht implementiert.

Das Folgende ist ein Auszug aus dem Quellcode. Es gibt eine ** Meta ** -Klasse in der ** Form ** -Klasse, aber dies ist eine Erkennung, die nichts mit diesem Ereignis zu tun hat.

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'})
        }

Umgebung

Die Ausführungsumgebung ist ** django 2.2.12 **, python3.7, Windows 10.

Ursache

Bei der Instanziierung der Form-Klasse wird davon ausgegangen, dass das erste Argument der Methode init eine "Anforderung" enthält.

Beim Schreiben von form = FormClass () wird "request" nicht an die Methode init übergeben. Wenn die Methode "is_valid" ausgeführt wird, tritt daher ein Validierungsfehler auf, da "request" nicht übergeben wird und immer "False" zurückgegeben wird.

Korrespondenz

Fügen Sie beim Instanziieren der Form-Klasse data = request.POST als Argument ein.

views.py


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

Nachdem ich die oben genannten Maßnahmen ergriffen hatte, bestätigte ich, dass True zurückkehren würde.

Referenz

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

Recommended Posts

Entsprechung des Ereignisses, dass das Ergebnis von form.is_valid () im Django2-System immer falsch ist
Das Ergebnis der Installation von Python auf Anaconda
Zeigen Sie das Ergebnis der Geometrieverarbeitung in Python an
Die Geschichte der Anzeige von Mediendateien in Django
[Django] Lassen Sie uns versuchen, den Teil von Django zu klären, der im Test irgendwie durch war
Hier ist eine, ich werde die mit "künstlicher Intelligenz" ausgestatteten Anwendungen zusammenfassen, an denen ich interessiert war
Linux ist in erster Linie so etwas
Code, der bei AttributeError Standardwerte festlegt
Ich habe an der Übersetzungsaktivität des offiziellen Django-Dokuments teilgenommen
Lassen Sie uns das Ausführungsergebnis des Programms mit C ++, Java, Python messen.
Das Ergebnis des maschinellen Lernens von Java-Ingenieuren mit Python www
Wartung der Django + MongoDB-Entwicklungsumgebung (mitten im Schreiben)
Zusammenfassung der Stolperpunkte in Django zum ersten Mal
Zeigen Sie den Fahrplan des Morioka-Busortungssystems in Pythonista an
Gibt es eine Verzerrung in den Zahlen, die in den Fibonacci-Zahlen erscheinen?
Die Geschichte, dass Fabric den Statuscode in der Mitte der Pipe im Shell-Skript nicht erhalten kann
Python Priority Queue Das Geheimnis des Ergebnisses der Heapify-Funktion, an dem die meisten Menschen nicht interessiert wären