Wenn Sie beispielsweise überprüfen möchten, ob mehrere Formulare in Django ordnungsgemäß eingegeben wurden, schreiben Sie sie einfach in das folgende Formular.
foo_form = HogeForm(request.POST, prefix="FooForm")
bar_form = FooForm(request.POST, prefix="BarForm")
if foo_form.is_valid() and bar_form.is_valid():
#Angemessene Verarbeitung
pass
else:
pass
Trotzdem ist es möglich, den Fehler abzurufen, wenn eine der beiden Formen vorerst Moos ist. Das Problem ist jedoch, wenn beide Formen Moos sind. Nehmen Sie zu diesem Zeitpunkt nicht an, dass is_valid () von bar_form ausgeführt wird.
Einfach ausgedrückt wird im Fall von Python im Fall der durch und verbundenen Beurteilungsformel die Bewertung nicht nach dem ersten False ausgeführt. Schreiben wir einen einfachen Code.
# -*- coding: utf-8 -*-
def return_True():
print "Call: return_True"
return True
def return_False():
print "Call: return_False"
return False
if return_True() and return_True() and return_False() and return_True():
print "All True ?"
else:
print "Not all True."
In diesem Fall wurde "Call: return_True" zweimal und "Call: return_False" nur einmal angezeigt. Die Ausführung der letzten Funktion wurde übersprungen. Dies liegt daran, dass * und sobald False erscheint, das Ganze False wird *. Um also Ressourcen wegzulassen, wird es wie "Dann ist das falsch" sein, ohne andere Dinge zu überprüfen. (Sobald True für oder erscheint, wird das nachfolgende Urteil übersprungen.)
Am einfachsten ist es, eine Variable vorzubereiten. Zum Beispiel?
# -*- coding: utf-8 -*-
def return_True():
print "Call: return_True"
return True
def return_False():
print "Call: return_False"
return False
one_return_True = return_True()
two_return_True = return_True()
three_return_False = return_False()
forth_return_True = return_True()
if (one_return_True and
two_return_True and
three_return_False and
forth_return_True):
print "All True ?"
else:
print "Not all True."
Auf diese Weise wird "return_True" auch dreimal angezeigt.
Erstens, wenn das Verhalten mit anderen Methoden unter der Voraussetzung verflochten ist, dass eine Methode aufgerufen wird, oder wenn eine Methode verwendet wird, die Boolean nach der Verarbeitung mit der Methode mit if usw. zurückgibt, wie oben beschrieben, Die Methode, von der Sie denken, dass sie ausgeführt werden sollte, wird nicht ausgeführt.