title: Django reverse lookup foreign keys with multiple conditions
body: <p>I am trying to do a reverse lookup in Django with multiple conditions, hopefully, my question does not duplicate with other questions. Let me explain:</p>
  
  <p>I have two models:
  Model A:</p>
  
  <pre><code>class A(models.Model):
      title = models.CharField(max_length=200)
      ... other fields
  </code></pre>
  
  <p>Model B:</p>
  
  <pre><code>class B(models.Model):
      a = models.ForeignKey(A)
      label = models.CharField(max_length=200)
      value = models.CharField(max_length=200)
      ... other fields
  </code></pre>
  
  <p>How can I get A that:
  1) has a B with label = name, value=John
  2) and, has a B with label =age, value =20</p>
  
  <p>I tried the following, it does not work:</p>
  
  <pre><code>A.objects.filter(b__label="name", b__value="John", b__label="age", b__value=20)
  </code></pre>