Pastebin
Paste #25046: No description
< previous paste - next paste>
Pasted by Anonymous Coward
### VIEW:
class DealListView(ListView):
model = Deal
paginate_by = 50
def get_queryset(self):
queryset = super().get_queryset()
sort_by = self.request.GET.get('sort_by', 'title')
if sort_by.startswith('-'):
queryset = queryset.order_by(sort_by)
else:
queryset = queryset.order_by(sort_by).reverse()
if sort_by == 'created_on':
queryset = queryset.order_by('-created_on')
return queryset
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
sort_by = self.request.GET.get('sort_by', 'title')
context['sort_by'] = sort_by
context['sort_title_asc'] = '?sort_by=title'
context['sort_title_desc'] = '?sort_by=-title'
context['sort_created_on_asc'] = '?sort_by=created_on'
context['sort_created_on_desc'] = '?sort_by=-created_on'
return context
### TEMPLATE:
<th>
<a href="{% if sort_by in 'title' and sort_title_asc %}{% url request.resolver_match.url_name %}{{ sort_title_desc }}
{% else %}{% url request.resolver_match.url_name %}{{ sort_title_asc }}
{% endif %}">
Deal
{% if sort_by in '-title' and sort_title_asc %}
{% if sort_title_asc == request.path_info %}
▲
{% else %}
▼
{% endif %}
{% endif %}
</a>
</th>
New Paste
Go to most recent paste.