python - order by condition Django -
i have 3 models userprofile , group :
class userprofile(models.model): slug = models.slugfield(max_length=200) user = models.foreignkey(user, unique =true) professionalnetwork = models.foreignkey('subforum',null=true, blank=true) class group(models.model): slug = models.slugfield(max_length=200) name = models.charfield(max_length=200) professionalnetwork = models.foreignkey('subforum') class subforum(models.model): name = models.charfield(max_length=200) how groups ordered first 1 have same professional network specific user rest ?
i looking group.objects.all().order_by('-professionalnetwork = profile.professionalnetwork') doesn't work of course ^^
thanks you
how (similar example in docs). idea introduce field computes whether group belongs specified professional network , queryset sorted field.
subforum_id = 1 # id here need sort sql = ''.join(( 'case professionalnetwork ', 'when {} 1 '.format(subforum_id), 'else -1', )) q = group.objects.extra(select={'same_subforum': sql}) q = q.extra(order_by=['same_subforum'])
Comments
Post a Comment