title: Django filtering on foreign key properties, difference between explicit and implicit foreign key property naming
body: <p>Suppose I have two <code>model</code>s - </p>
  
  <pre><code>class A(models.Model):
      a_id=models.CharField(max_length=255,primary_key=True)
      a_name=models.CharField(max_length=255)
  
  class B(models.Model):
      a=models.ForeignKey(A)
      b_name=models.CharField(max_length=255)
  </code></pre>
  
  <p>I want to filter <code>B</code> objects which belong to a particular <code>a_id</code>. I can either do this - </p>
  
  <pre><code>B.objects.filter(a=a_id)
  </code></pre>
  
  <p>or</p>
  
  <pre><code>B.objects.filter(a__a_id=a_id)
  </code></pre>
  
  <p>Is there any difference between the two, in terms of efficiency, speed or functionality?</p>