Usted puede hacer esto al declarar su función como esta:
def filter(**kwargs):
su función ahora se le pasará un diccionario llamado kwargs que contiene las palabras clave y los valores pasados a tu función. Tenga en cuenta que, sintácticamente, la palabra kwargs
no tiene sentido; el **
es lo que causa el comportamiento dinámico de palabras clave.
También puede hacer lo contrario. Si se llama a una función, y que tiene un diccionario que corresponde a los argumentos, se puede hacer
someFunction(**theDictionary)
También existe la variante * foo menos utilizadas, lo que hace que se recibe una serie de argumentos. Esto es similar a las matrices vararg C normales.
Ver http://stackoverflow.com/questions/310732/in-django-how-does-one-filter-a-queryset-with-dynamic-field-lookups –