title: Django filter - filter by Avg of a field in related model
body: <p>I'm using django-filter to filter through my <code>Festival</code> model. There is another model, <code>Review</code>, which contains reviews about festivals and related to the <code>Festival</code> model by a <code>Foreignkey</code>.
  My goal is to be able to filter festivals by <code>friendly</code> average > 3 (<code>friendly</code> is a one field for example in <code>Review</code> model).  </p>
  
  <p>Any idea how to do it? Many thanks =]</p>
  
  <p><strong>Models.py</strong></p>
  
  <pre><code>class Review(models.Model):
  ...
  festival = models.ForeignKey(
      Festival,
      related_name='Festival_Reviews',
      on_delete=models.CASCADE,
      null=True,
      blank = True,
      default = '',
  )
  score_choices = (
      (1, 'Bad'),
      (2, 'Okay'),
      (3, 'Good'),
      (4, 'Great'),
      (5, 'Superb'),
  )
  
  
  friendly = models.IntegerField(
      choices=score_choices,
      default='',
      null=True,
      blank = True,
  )
  
  class Festival(models.Model):
  ...
  created_at = models.DateTimeField(auto_now=True)
  name = models.CharField(max_length=200)
  </code></pre>
  
  <p><strong>Filter.py</strong> (this was my idea, I'm pretty new to Django)</p>
  
  <pre><code>class FestivalFilter(django_filters.FilterSet):
      ...
      Festival_Reviews_friendly = django_filters.BooleanFilter(field_name='Festival_Reviews',method='avg_above3')
  
      def avg_above3(self, queryset, name, value):
          return queryset.aggregate(friendly_avg=Avg('friendly')).filter(friendly_avg__gt=3)
  </code></pre>
  
  <p><strong>Views.py</strong></p>
  
  <pre><code>class HomePage(ListFilteredMixin, AjaxListView):
      template_name = 'index.html'
      page_template = 'index_page.html'
      model = models.Festival
      paginate_by = 12
      context_object_name = 'festivals'
      filter_set = FestivalFilter
  </code></pre>