Query Mixins
All of the mixins in here relate to controlling the queries that your views make. Use these views to reduce the number of queries being ran.
SelectRelatedMixin
Adds select_related
clauses to your query.
from brackets.mixins import SelectRelatedMixin
class SuperDetailView(SelectRelatedMixin, DetailView):
select_related = "profile"
You can select multiple fields by providing a list (e.g.
select_related = ["profile", "pet_set"]
).
PrefetchRelatedMixin
Much like the SelectRelatedMixin
, the PrefetchRelatedMixin
will add
prefetch_related
clauses into your query.
from brackets.mixins import PrefetchRelatedMixin
class SuperListView(PrefetchRelatedMixin, ListView):
prefetch_related = ["user", "account"]
You can provide a single field as a string.
OrderableListMixin
The OrderableListMixin
injects directives to order your queryset via
your URL. An example might be a URL like example.com/widgets/?order_by=manufacturer&order_dir=desc
, which would order a page full of widgets by their manufacturer
in descending order.
class SortYourselfOut(OrderableListMixin, ListView):
orderable_fields = ["manufacturer", "make", "model"]
orderable_field_default = "make"
orderable_direction_default = "asc"