Django-Formularsatz wird nicht validiert

8

Ich versuche, ein Formularset zu speichern, aber es scheint, is_valid () zu umgehen, obwohl es Felder gibt.

Um das zu testen, habe ich eine einfache Form:

%Vor%

Die Ansicht:

%Vor%

Und die Vorlage:

%Vor%

Was passiert, ist, dass ich auf "add" klicke, ohne einen Namen einzugeben, dann wird HttpResponse ("bearbeitet") get aufgerufen, scheinbar unter der Annahme, dass es ein gültiges Formular ist.

Ich könnte etwas hier vermissen, aber ich kann nicht sehen, was falsch ist. Was ich möchte, ist genau wie jedes andere Formular, wenn das Feld einen Fehler ausspucken muss, wenn es nicht ausgefüllt ist. Irgendwelche Ideen?

    
tsoporan 16.03.2010, 04:34
quelle

4 Antworten

11

Heh, ich hatte genau dasselbe Problem. Das Problem ist, dass Sie ein Formset verwenden !! Formsets lassen alle Felder in einem Formular leer. Wenn Sie jedoch zwei Felder haben und nur eins ausfüllen, dann , werden Sie Ihre benötigten Daten erkennen. Dies geschieht, weil Formsets für das "Bulk-Hinzufügen" erstellt werden und manchmal nicht alle zusätzlichen Formulare auf einer Seite ausgefüllt werden müssen. Wirklich nervig; Sie können hier meine Lösung sehen.

    
mpen 16.03.2010, 05:02
quelle
0

Fügen Sie 2 Zeilen hinzu.

%Vor%

Viel Glück!

    
susukida 30.10.2010 17:35
quelle
0

Fügen Sie für jedes der erforderlichen Felder einen zusätzlichen Eintrag im Parameter attrs

hinzu %Vor%

Wie Sie sehen können, verwalte ich die erforderliche = True für die Formularvalidierung von django, aber gebe 'required': 'required' an, damit die Vorlage darauf besteht, dass das Feld erforderlich ist.

Ich hoffe, das hilft.

    
ben baka 08.12.2017 07:07
quelle
-4

verwenden:

  

falls nicht (formset.errors): ...

anstelle von:

  

if formset.is_valid (): ...

    
gdo 23.06.2010 11:24
quelle

Tags und Links