title: How to filter Django object to get top X number of objects with highest property value
body: <p>So I have a class called Hero with 150 objects. Each object has a property Winrate. I want to get the top 12 heros based on winrate.</p>
  
  <pre><code>class Hero(models.Model):
  
      hero_name = models.CharField(max_length=20, default = 'Dota 2 Hero') 
      hero_id = models.IntegerField()
  
      def __str__(self):
          return str(self.hero_id)
      def get_winrate(self):
          wins = len(Match.objects.filter(heros_won = Hero.objects.get(hero_id = self.hero_id)))
          losses = len(Match.objects.filter(heros_lost  = Hero.objects.get(hero_id = self.hero_id)))
          if wins + losses != 0:
              return round((wins / (wins + losses)),2)
          else:
              return 0 
      winrate = property(get_winrate)
  </code></pre>
  
  <p>I tried alot of filters but couldn't get it to work.</p>