In Django, come si filtra un QuerySet con ricerche di campi dinamici?

| | | | | | | | | |

Data una classe:

da django.db import models class Person(models.Model): name = models.CharField(max_length=20) 

È possibile, e se sì come, avere un QuerySet che filtri in base ad argomenti dinamici? Ad esempio:

 # Invece di: Person.objects.filter(name__startswith="B") # ... e: Person.objects.filter(name__endswith="B") # .. . c'è un modo, dato: filter_by = "{0}__{1}".format("name", "startswith") filter_value = "B" # ... che puoi eseguire l'equivalente di questo? Person.objects.filter(filter_by=filter_value) # ... che genererà un'eccezione, poiché `filter_by` non è # un attributo di `Person`.