Jak w Django filtrować QuerySet za pomocą dynamicznych wyszukiwań pól?

| | | | | | | | | |

Dano klasę:

z django.db importuj klasę modeli Person(models.Model): name = models.CharField(max_length=20) 

Czy jest możliwe, a jeśli tak, to jak, mieć zestaw QuerySet, który filtruje na podstawie dynamicznych argumentów? Na przykład:

 # Zamiast: Person.objects.filter(name__startswith="B") # ... i: Person.objects.filter(name__endswith="B") # .. .czy jest jakiś sposób, biorąc pod uwagę: filter_by = "{0}__{1}".format("name", "startswith") filter_value = "B" # ... że możesz uruchomić odpowiednik tego? Person.objects.filter(filter_by=filter_value) # ... który zgłosi wyjątek, ponieważ `filter_by` nie jest # atrybutem `Person`.