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

Popular posts from this blog

php - SPIP: From Tag directly to an article -

jquery - isAjaxRequest always return false -

ruby on rails - In a controller spec, how to find a specific tag in the generated view? -