繼反序列化Django文檔自然鍵,在我models.py
我創建的類:Django的1.4.1和使用反序列化
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
我還創建了一個夾具人「的人。 JSON」,
[
{
"pk": null,
"model": "myapp.person",
"fields": {
"name": "josh",
}
}
]
和圖書, 「book.json」,
[
{
"pk": null,
"model": "myapp.book",
"fields": {
"title": "my book",
"author": ["josh"]
}
}
]
這些燈具是SAV在'燈具'文件夾中編輯。
然後我做python manage.py sql myapp
和python manage.py syncdb
,然後python manage.py loaddata persondata.json
。這工作。 (我可以看到管理頁面上輸入的數據,我也得到了良好的插入計數消息回來了。)
然後我做python manage.py loaddata bookdata.json
,我得到了以下錯誤消息:
DeserializationError: [u"'[u'josh']' value must be an integer."]
這怎麼可能是?爲什麼Django堅持使用整數作爲主鍵,當我聲明PersonManager
?我錯過了什麼?
(特別注意:這是所有工作正常,當我給author
pk
直接爲整數)。
我的不好,我打算把另一個標記爲這個副本。另一個問題有一個可以接受的答案,所以我想確保這個問題有一個參考。刪除標誌,但這裏是答案可能的重複:http://stackoverflow.com/questions/12577446/django-natural-key-for-fixtures-give-deserialization-error – Gady 2014-08-28 00:58:19