title: Why does `user.has_perm(Model, obj)` return False although `user.has_perm(Model)` returns True?
body: <p>In a Django project and application just created with <code>django-admin startproject</code> and <code>./manage.py startapp</code>, I've created this model:</p>
  
  <pre><code>class Book(models.Model):
      author = models.CharField(max_length=50)
  </code></pre>
  
  <p>Then I run this code with <code>./manage.py shell</code>:</p>
  
  <pre><code>from django.contrib.auth.models import Permission, User
  from django.test import TestCase
  from myapp.models import Book
  
  myuser = User.objects.create_user(username="myuser")
  myuser.user_permissions.add(Permission.objects.get(codename="change_book"))
  
  mybook = Book(author="Joe Author")
  mybook.save()
  
  myuser.has_perm("myapp.change_book"))  # The result is True
  myuser.has_perm("myapp.change_book", mybook))  # The result is False
  </code></pre>
  
  <p>Why is this? The user <em>does</em> have permission to edit <code>mybook</code>, doesn't he? How is <code>has_perm()</code> supposed to work? Is this documented somewhere?</p>