Add basic support for sorting & filtering on the backend
This commit is contained in:
parent
edd4e0ca41
commit
4851d50d7e
@ -29,7 +29,17 @@ class IndexView(generic.ListView):
|
||||
model = models.Movie
|
||||
|
||||
def get_queryset(self):
|
||||
return models.Movie.objects.filter(watched=False).order_by('id').all()
|
||||
qs = models.Movie.objects
|
||||
# Filter
|
||||
if self.request.GET.get("watched", False) != "true":
|
||||
qs = qs.filter(watched=False)
|
||||
# Sort
|
||||
order = self.request.GET.get("sort", "id")
|
||||
if order in ('id', '-id', 'name', '-name'):
|
||||
qs = qs.order_by(order).all()
|
||||
elif order == "score" or order == "-score":
|
||||
qs = sorted(qs.all(), key=lambda x: x.score, reverse=True if order == "score" else False)
|
||||
return qs
|
||||
|
||||
def get_context_data(self):
|
||||
context = super().get_context_data()
|
||||
|
Loading…
Reference in New Issue
Block a user