2016-07-29 1 views
0

Ich denke Beispiel ist mehr wert als Worte.Variable als Funktionsparameter in Python

Ich will das neu zu schreiben:

person = Person.objects.filter(email__contains="gmail.com") 

irgendwie wie folgt aus:

condition = "email__contains" 
person = Person.objects.filter(condition="gmail.com") 

Ist das möglich?

+0

meinen Sie 'email_contains' oder' email__contains' nennen könnte? Es ist in Ihrem Beispiel inkonsistent geschrieben - oder ist es absichtlich? – janbrohl

Antwort

3

Unabhängig von django Sie

condition = "email__contains" 
person = Person.objects.filter(**{condition:"gmail.com"}) 

statt

person = Person.objects.filter(email__contains="gmail.com") 

weil func(kw=arg) bedeutet das gleiche wie func(**{"kw":arg})

+0

Perfekt. Genau das, was ich brauchte! thx – Kubber

+0

Sie haben einen Tippfehler: '" email_contains "->" email__contains "' –

+0

Nicht sicher, ob in den Beispielen des OP inkonsistente Rechtschreibprüfung war - aber meine Codebeispiele funktionieren nur mit konsistenter Schreibweise – janbrohl