python - Ordered list of objects for template -
trying order queryset. know there order_by() ordering defined post data, not in db.
sort----lookup-----display objects (darn, orderless) 1. joe \ 2. fred => {fred, joe, marty} 3. marty / this view code have far...
from operator import itemgetter #... # sorted tuples! what?? (this not used) i1 = sorted([(k,v) k,v in request.post.items() if k[:2] == 'i_'], key=itemgetter(1)) e1 = sorted([(k,v) k,v in request.post.items() if k[:2] == 'e_'], key=itemgetter(1)) # unsorted lists use in orm :/ = [int(v) k,v in request.post.items() if k[:2] == 'i_'] e = [int(v) k,v in request.post.items() if k[:2] == 'e_'] # it's orderless queryset... i_students = student.objects.filter(pk__in=i) e_students = student.objects.filter(pk__in=e) if have ideas, let me know :) in template...
<ol> {% s in i_students %} <li>{{ s }}</li> {% endfor %} </ol> and have display:
1. joe 2. fred 3. marty
this answered question: http://blog.mathieu-leplatre.info/django-create-a-queryset-from-a-list-preserving-order.html
i stuff post:
i_0 -> 3 i_1 -> 26 i_2 -> 12 and return sorted objects this:
i_tuples = sorted([(k,v) k,v in request.post.items() if k[:2] == 'i_'], key=itemgetter(0)) i_pk_list = [v (k,v) in i_tuples] clauses = ' '.join(['when id=%s %s' % (pk, i) i, pk in enumerate(i_pk_list)]) ordering = 'case %s end' % clauses i_students = student.objects.filter(pk__in=i_pk_list).extra( select={'ordering': ordering}, order_by=('ordering',)) it's pretty messy, if has better solution sorting querysets, let me know.
Comments
Post a Comment