complex filtering based on Django Q
Use the power of Django Q Objects to filter django models with complex queries. Django Q Filter provides filter forms (based on bootstrap and jQuery) and utils for complex query filters.
The filter form selects the possible django model fields dynamically and computes a Q-Query with the given input.
the resulting queryset is automatically annotated with the field and values of the given Q-Query. results of a Q-Query are always a "joined" style list and to enhance the experience, a normalized result set can be computed, where the values can be merged.
For demo purposes, an example project is provided.
- Python (3.6, 3.7, 3.8, 3.9)
- Django (2.2, 3.0, 3.1)
- django-crispy-forms
Install using pip
...
pip install django-q-filter
Add 'qfilter'
to your INSTALLED_APPS
setting.
INSTALLED_APPS = [
...
'qfilter',
]
Use Q-Filter mixin in django views. See example project.
# example/food/views.py
class RecipeListView(QQueryViewMixin, ListView):
"""
Recipe List View
"""
model = Recipe
template_name = 'food/recipe_list.html'
ordering = ['name']