Ich habe eine Django-Applikation und bin beim Schreiben eines Management Commands auf eine meiner allgemeine Python-Wissenslücke gestoßen:
Ich suche einen Satz an Datenbankobjekten mit der `.filter` Methode von Django:
Code: Alles auswählen
cards = RfidCard.objects.filter(unavailable__exact=True)
Soweit so gut; nun habe ich weitere `BooleanField`s in meinem Model, für die ich exakt dieselben Möglichkeiten darstellen will. Daher möchte ich gerne mit variablen arbeiten, statt irgendwelchem "if ..." und statischen Varianten.
Und hier beginnt mein Problem: Wie macht man denn das für Argumente und Elementnamen in Python?
Ich habe für Argumente einen ersten Erfolg mit folgender `eval`-Variante des vorigen Codes erzielt:
Code: Alles auswählen
cards = eval(f"RfidCard.objects.filter({flag}__exact=True)")
In den so ausgelesenen Model-Instanzen gibt es diese Felder aber dann ja als Property, welche ich gerne überschreiben würde. Zum Beispiel:
Code: Alles auswählen
for card in eval(f"RfidCard.objects.filter({flag}__exact=True)"):
card.{flag} = False
Hat jemand einen Tipp für mich?