Im neuen Django/Python so entschuldigen Sie die Dummheit. Ich habe ein Musterformular mit ein paar Auswahlfeldern. Es gibt Validierungen in den Feldern, wenn ich eine Submit-Funktion durchführe. Das funktioniert alles gut. Jetzt möchte ich die Validierung ändern, um die Auswahl des ersten Auswahlfelds inline zu validieren und dann das zweite Auswahlfeld zu ändern, abhängig davon, was für das erste Auswahlfeld ausgewählt wurde. Bitte entschuldigen Sie die folgende schlechtes Beispiel, aber Sie werden die IdeeModell Form Inline-Validierung und die Auswahl
Beispiel models.py erhalten:
fruit_list = (
('apple','Apple'),
('berries','Berries),
)
apple_color = (
('red', 'Red'),
('green', 'Green'),
)
berries_color = (
('red','Red'),
('blue', 'Blue'),
)
class fruit(models.Model):
fruit = models.Charfield(max_lenght=7, choices=fruit_list)
color = models.Charfield(max_lenght=5, choices=?????) ##Here Im looking for the answer on how to switches between the two options. Maybe just a normal form
def __unicode__(self): ##python 3 use __str__
return str(self.fruit)
Form:
class fruit(forms.ModelForm):
class Meta:
model = request
fields = [ 'fruit', 'color' ]
auch so meine Validierung ist auf der HTML-Post per meine Ansicht unten. Aber wie kann ich Inline-Validierung zu tun, nicht auf meinem Beitrag
views.py:
def home(request):
if request.method == 'POST':
form = fruit(request.POST, request.FILES)
title = "Request Form"
context = {
"title": title,
"form": form,
}
if form.is_valid():
instance = form.save(commit=False)
return HttpResponseRedirect('/thanks/')
else:
form = fruit()
title = "Request Form"
context = {
"title": title,
"form": form,
}
return render(request, "home.html", context)
Klassen in Python sollten mit einem Großbuchstaben beginnen. https://www.python.org/dev/peps/pep-0008/#id36 –
du speicherst dort nichts mit save (commit = False). Ich weiß nicht, ob das das Ziel ist – dietbacon
Hallo Dietbacon, sorry ich habe die instance.save() –