0
Ich habe den folgenden Code.Django Filterung mit Kwargs
def alpha(**kwargs):
q_obj_list = [Q(str(i), kwargs.get(i)) for i in kwargs.keys()]
reduce(operator.and_, q_obj_list)
return q_obj_list
q = Elements.objects.all()
q = q.filter(alpha(id=1, is_active=False))
Für diesen Code, den ich eine Fehlermeldung, Typeerror empfange: boolsche Objekt hat kein Attribut ‚getitem‘. Ich wollte den folgenden Code durch diesen ersetzen.
q = Elements.objects.all()
id = kwargs.get("id")
active = kwargs.get("is_active")
q.filter(id=id,is_active=active)
Wie kann ich einen solchen Fehler beheben?
Bitte ändern 'id = kwargs.get ("id) '' von id = kwargs.get (" id") 'Da es eine sehr kleine Veränderung ist, kann ich nicht ändern. Ihre Frage Was ist 'Q'? – GLR
Warum nicht einfache Abfrage?' q = Elements.objects.filter (id = kwargs.get ("id"), aktiv = kwargs.get ("is_active")) ' –
@RomanMindlin Ich frage nach einem besseren Weg in Fällen, wenn die Anzahl der Felder groß und Argumente optional sind. –