Guest User

Untitled

a guest
Dec 10th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. diff -crB django_sorting-old/templatetags/sorting_tags.py django_sorting/templatetags/sorting_tags.py
  2. *** django_sorting-old/templatetags/sorting_tags.py 2010-02-20 18:56:52.000000000 +0100
  3. --- django_sorting/templatetags/sorting_tags.py 2010-02-20 19:03:45.000000000 +0100
  4. ***************
  5. *** 1,6 ****
  6. --- 1,8 ----
  7. from django import template
  8. from django.http import Http404
  9. from django.conf import settings
  10. + from django.db.models.query import QuerySet
  11. + from operator import attrgetter
  12.  
  13. register = template.Library()
  14.  
  15. ***************
  16. *** 96,102 ****
  17. order_by = context['request'].field
  18. if len(order_by) > 1:
  19. try:
  20. ! context[key] = value.order_by(order_by)
  21. except template.TemplateSyntaxError:
  22. if INVALID_FIELD_RAISES_404:
  23. raise Http404('Invalid field sorting. If DEBUG were set to ' +
  24. --- 98,119 ----
  25. order_by = context['request'].field
  26. if len(order_by) > 1:
  27. try:
  28. ! if isinstance(value, QuerySet):
  29. ! # more flexible but generally more error-prone check:
  30. ! # callable(getattr(value, 'order_by', None))
  31. ! context[key] = value.order_by(order_by)
  32. ! # sort iterable
  33. ! elif hasattr(value, '__iter__'):
  34. ! if order_by[0]=='-': # descending order
  35. ! reverse = True
  36. ! order_by = order_by[1:]
  37. ! else: # ascending order (standard)
  38. ! reverse = False
  39. ! context[key] =\
  40. ! sorted(value,key=itemgetter(order_by),reverse=reverse)
  41. ! else:
  42. ! raise AttributeError("Expected QuerySet or iterable under\
  43. ! template variable '%s'." % key)
  44. except template.TemplateSyntaxError:
  45. if INVALID_FIELD_RAISES_404:
  46. raise Http404('Invalid field sorting. If DEBUG were set to ' +
Add Comment
Please, Sign In to add comment