Also die Kids müssen eine Wertetabelle ausfüllen und ich muss feststellen, wieviele Einträge richti, falsch und leer sind ... und dies natürlich auch rückmelden. Ich habe da ein hochkompliziertes Kostrukt mit Primzahlen erstellt (das ich auch nur schwierig nachvollziehen kann, das aber soweit funktioniert. Die Nutzer bekommen eine Meldung wie z.B. dieser "2. Eintrag falsch 3. Eintrag falsch 4. Eintrag falsch 5. Eintrag leer ". Ich möchte aber gerne die Felder in denen die Eingabe richtig, falsch oder leer ist einfärben, habe aber keine Ahnung, ob das überhaupt geht.
Ich stelle hier mal die entsprechenden teile des Codes ein (bitte nicht erschrecken).
Also der Teil aus dem Template:
Code: Alles auswählen
...<tr>
<td>{{parameter.x0}}</td>
<td>{{form.y0}}</td>
</tr>
<tr>
<td>{{parameter.x1}}</td>
<td>{{form.y1}}</td>...
Code: Alles auswählen
class AufgabeFormTerm(forms.Form):
y0 = forms.DecimalField(label='', max_digits=5,
decimal_places=2, required=False, localize=True, widget=forms.TextInput(attrs={'size': 3, 'autocomplete': 'off', 'autofocus': True,}))
y1 = forms.DecimalField(label='', max_digits=5,
decimal_places=2, required=False, localize=True, widget=forms.TextInput(attrs={'size': 3, 'autocomplete': 'off'}))...
Code: Alles auswählen
if isinstance(eingabe, list): # für Wertetabellen
lsg = lsg[0]
punkte = 0
rueckmeldung = ""
primzahlen = [3,5,7,11,13]
for n in range(len(lsg)):
print(eingabe[n])
if not eingabe[n] is None: # überprüft ob Einträge richtig sind
if (float(lsg[n].replace(",", "."))) == float(eingabe[n]):
punkte += primzahlen[n]
else:
rueckmeldung = rueckmeldung + (str(n+1) + ". Eintrag falsch ")
else:
rueckmeldung = rueckmeldung + (str(n+1) + ". Eintrag leer ")
return punkte, rueckmeldung
Wenn mir jemand sagen kann, ob ich hier überhaupt eine Rückgabe an die Forms hinbekommen kann und wie man die Hintergrundfarbe anspricht, könntee ich mich schon mal weiter in meinen Code reinarbeiten...