How do I get the top-ranked products within a category?
===

Given a product (product_name is a parameter in the view), I am trying to return the 5 top-ranked products within that category (as defined by the method "get_avg_rating") as a list that I can loop through in a template.  Any advice on how to do this?

    class Productbackup(models.Model):
    	website = models.CharField('Product name', max_length = 200)
    	url_friendly = models.CharField('URL friendly', max_length = 200)
    	website_url = models.URLField('Product URL')
    	description= models.CharField('Description', max_length = 2000)
    	category = models.ForeignKey(Categories)
    	#category = models.ManyToManyField(Categories)
    	image_hero = models.URLField('Hero image url')
    	image_second = models.URLField('Second image url')
    	image_third = models.URLField('Third image url')
    	created_on = models.DateTimeField(auto_now_add = True)
    	updated_at = models.DateTimeField(auto_now = True)
    	def __unicode__(self):
    		return self.website
	
    	def get_avg_rating(self):
    		reviews = Reviewbackup.objects.filter(product=self)
    		count = len(reviews)
    		sum = 0.0
    		for rvw in reviews:
    			sum += rvw.rating
    		return (sum/count)
    
    	def get_num_reviews(self):
    		reviews = Reviewbackup.objects.filter(product=self)
    		count = len(reviews)
    		return count
    
    RATING_OPTIONS = (
        (1, '1'),
        (2, '2'),
        (3, '3'),
        (4, '4'),
        (5, '5'),
                    (6, '6'),
        (7, '7'),
        (8, '8'),
        (9, '9'),
        (10, '10'),
    )
    class Reviewbackup(models.Model):
    	review = models.CharField('Review', max_length = 2000)
    	created_on = models.DateTimeField(auto_now_add = True)
    	updated_at = models.DateTimeField(auto_now = True)
    	user = models.CharField('Username', max_length =  200)
    	rating = models.IntegerField(max_length=2, choices=RATING_OPTIONS)
    	product = models.ForeignKey(Productbackup)
    	def __unicode__(self):
    		return self.review
    
    class Categories(models.Model):
    	category = models.CharField('Category_second', max_length = 200)
        	url_friendly = models.CharField('url_friendly', max_length = 200)
	    def __unicode__(self):
	    	return unicode(self.category)

    def view_reviews(request, product_name):
    	product = get_object_or_404(Productbackup, url_friendly=product_name)
    	product_id = product.id
    	#get reviews for the this product
    	reviews = Reviewbackup.objects.filter(product_id=product_id).order_by("-created_on")
    	#similar products in category comparison
    	prod_category = Productbackup.objects.filter(category=product.category)
    	#top_ranked = Productbackup.objects.order_by('get_avg_rating')[0:5]
    	#recently added
    	recent_added = Productbackup.objects.order_by('-created_on')[0:5]
    	return render_to_response('reserve/templates/view_reviews.html', {'prod_category': prod_category, 'product':product, 'reviews':reviews, 'recent_added':recent_added},
		context_instance=RequestContext(request))