We've developed a responsive map using this tutorial where Django Rest Framework serves responses that populates the map. My viewsets.py:
class MarkerViewSet(viewsets.ReadOnlyModelViewSet):
"""Marker view set."""
bbox_filter_field = "geom"
filter_backends = (filters.InBBoxFilter,)
queryset = Tablename.objects.all()
serializer_class = MarkerSerializer
pagination_class = GeoPaginator
I'd like to add optional criteria to this filter if they are found in a GET value. The rest of my project uses views.py, which filters things differently. My simplified views.py which does this for something else:
def EgFilterView(request):
qs = Tablename.objects.all()
date_min_query = request.GET.get('dmin')
min_date = 1970
qs = qs.filter(date__gte=dt.datetime(int(date_min_query), 1, 1, tzinfo=pytz.UTC))
context = {
'queryset': qs,
'dmin': min_date,
}
return render(request, "main_page.html", context)
But it looks like viewsets.py doesn't handle .get()
values in this way, but instead uses .list()
and .create()
, which I don't understand.
How can I include additional filters into my viewsets.py to further filter things with GET values? Would it be better to attempt to convert this viewsets.py / other complicated API stuff I don't understand into views.py?