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
Post a Comment