from functools import partial from django.db import models class ChoiceFilterManager(models.Manager): def __init__(self, field, choices, *args, **kwargs): super(ChoiceFilterManager, self).__init__(*args, **kwargs) for k,v in dict(choices).items(): setattr(self, v.lower(), partial(self.filter, **{field:k}))