Hintergrundfarbe in Formularen ändern
Verfasst: Mittwoch 29. November 2023, 19:41
Ich habe da wieder mal was zusammengepfuscht (weil ich es nicht besser kann), was mir so nicht gefällt. Am besten kann ich das mit einem Screenshot erklären (Sorry):

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:
die forms:
den Teil aus der Auswertung:
(Mit den Primzahlen kann ich feststellen, welche Punkte es für richtige und falsche Eingaben gibt. Bei drei Werten bei den Wertetabellen für Zuordnungen ging das noch, jetzt habe ich Tabellen mit fünf Werten ...)
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...

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...