title: Django Querysets: Get only one from set and order them
body: <p>I have this models: </p>
  
  <pre><code>#models.py
  
  class Expression(models.Model):
      text = models.CharField(max_length=254)
  
  class Country(models.Model):
      name = models.CharField(max_length=100)
  
  class Definition(models.Model):
      expression = models.ForeignKey(Expression)
      country = models.ForeignKey(Country)
      text = models.CharField(max_length=254)
  
  class Vote(models.Model):
      definition = models.ForeignKey(Definition)
  </code></pre>
  
  <p>And this view</p>
  
  <pre><code>#views.py
  
  def index(request):
      # Here is where I want to get the queryset
      return render(request, 'index.html', { 'definitions':definitions)
  </code></pre>
  
  <p>Then in the template the idea is something like this:</p>
  
  <pre><code>#index.html
  
  
  Expression is {{ expression }}
  {% for definition in expressions.definitions_set.all %}
      Country's "1" top definition for expression is {{ definition }}
      Country's "2" top definition for expression is {{ definition }}
      [etc]
  {% endfor %}
  </code></pre>
  
  <p>How can I get a queryset of definitions that gets only the top definition (by votes) of each country</p>