django-filter is generic system for filtering Django QuerySets based on user selections. The documentation uses it in a function-based view as a product model:
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=255)
price = models.DecimalField(...