How can django order a queryset such that specific instances are listed first? -


i need order queryset in such way:

>>tag_queryset [tag4, tag3, tag1, tag2] 

default queryset is:

>>tag.objects.all() [tag1, tag2, tag3, tag4] 

so have specific queryset like:

 >>tags_to_place_first  [tag4, tag3] 

and want merge common queryset of all() objects in tag model place tag4 , tag3 first in resulting sequence:

#something >>tag.objects.all().placefirst(tags_to_place_first) [tag4, tag3, tag1, tag2] 

can give solution not hinder performance?

you talking performance solution, then, approach that. tag model append new property named 'sort_field':

from django.db import models  class tag(models.model):     name = models.charfield(max_length=30)     sort_field = models.integerfield() 

populate model convenience:

tab.objects.filter( name = 'tag4' ).update( sort_field = 1 ) tab.objects.filter( name = 'tag3' ).update( sort_field = 2 ) 

finally sort new sort_field:

tag.objects.all().order_by( 'sort_field' ) 

Comments

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -