title: Django 1.4.1 and using natural keys in deserializing
body: <p>Following the Django docs on deserialization, in my <code>models.py</code> I've created the class:</p>
  
  <pre><code>class PersonManager(models.Manager):
      def get_by_natural_key(self, name):
          return self.get(name=name)
  
  class Person(models.Model):
      objects = PersonManager()
      name = models.CharField(max_length=30, unique=True, blank=False, null=False)
  
      def __unicode__(self):
          return self.name
  
  class Book(models.Model):
      title = models.CharField(max_length=100)
      author = models.ForeignKey(Person)
  
      def __unicode__(self):
              return self.title
  </code></pre>
  
  <p>I've also created a fixture for Person, "person.json",</p>
  
  <pre><code>[
      { 
          "pk": null,
          "model": "myapp.person", 
          "fields": {
              "name": "josh",
          }
       }
  ]
  </code></pre>
  
  <p>and for Book, "book.json",</p>
  
  <pre><code>[
      { 
          "pk": null,
          "model": "myapp.book", 
          "fields": {
              "title": "my book",
              "author": ["josh"]
          }
       }
  ]
  </code></pre>
  
  <p>The fixtures are saved in the 'fixtures' folder.</p>
  
  <p>I then do <code>python manage.py sql myapp</code> and <code>python manage.py syncdb</code>, and then <code>python manage.py loaddata persondata.json</code>. This works. (I can see the entered data on the admin page and I get a good insert count message back.)</p>
  
  <p>Then I do <code>python manage.py loaddata bookdata.json</code> and I get the following error message:</p>
  
  <p><code>DeserializationError: [u"'[u'josh']' value must be an integer."]</code></p>
  
  <p>How can that be? Why is Django insisting that I use an integer for the primary key, when I've declared the <code>PersonManager</code>? What have I missed?</p>
  
  <p>(NB. This is all working fine when I give <code>author</code> <code>pk</code> directly as an integer.)</p>