Let's say I have the following model:
class Contest: title = models.CharField( max_length = 200 ) description = models.TextField() class Image: title = models.CharField( max_length = 200 ) description = models.TextField() contest = models.ForeignKey( Contest ) user = models.ForeignKey( User ) def score( self ): return self.vote_set.all().aggregate( models.Sum( 'value' ) )[ 'value__sum' ] class Vote: value = models.SmallIntegerField() user = models.ForeignKey( User ) image = models.ForeignKey( Image )
Site users can submit their images to several competitions. Then other users can vote for them up or down.
Everything works fine, but now I want to display a page on which users can see all contributions to a particular contest. Images should be sorted by rating. So I tried the following:
Contest.objects.get( pk = id ).image_set.order_by( 'score' )
As I feared, this would not work, since 'score' is not a database field that could be used in queries.
python database django order
okoman Jan 24 '09 at 13:26 2009-01-24 13:26
source share