Python Django夹具数据没有有效的模型标识符?
我相信这里有一个简单的答案,但我看不出来。我试图将fixture加载到数据库中,但无论使用什么模型标识符,我都会不断得到Python Django夹具数据没有有效的模型标识符?,python,django,fixtures,Python,Django,Fixtures,我相信这里有一个简单的答案,但我看不出来。我试图将fixture加载到数据库中,但无论使用什么模型标识符,我都会不断得到反序列化错误:无效的模型标识符:…错误 文件结构: testproject/ testapp/ fixtures/ data.json __init__.py models.py tests.py views.py sqlite3.db __init_
反序列化错误:无效的模型标识符:…
错误
文件结构:
testproject/
testapp/
fixtures/
data.json
__init__.py
models.py
tests.py
views.py
sqlite3.db
__init__.py
manage.py
settings.py
urls.py
因为这是我第一次尝试Fixture,所以我使用的模型来自:
data.json:
[
{
"pk": "3",
"model": "testapp.article",
"fields":
{
"headline": "Time to reform copyright",
"pub_date": "2006-06-16 13:00:00"
}
},
{
"pk": "2",
"model": "testapp.article",
"fields":
{
"headline": "Poker has no place on ESPN",
"pub_date": "2006-06-16 12:00:00"
}
},
{
"pk": "1",
"model": "testapp.article",
"fields":
{
"headline": "Python program becomes self aware",
"pub_date": "2006-06-16 11:00:00"
}
}
]
我试过
testapp.article
,testproject.article
,testproject.testapp.article
,它们都抛出相同的错误。我使用Python2.6运行1.2.4,并使用loaddata而不是syncdb。有什么想法吗?您的data.json文件很好,我已经尝试过了,而且效果很好
您确定您的数据库已与您的模型同步吗
您运行什么来加载文件
正如Luc所建议的,将“manage.py dumpdata testapp”输出与您的文件进行比较我不确定这是否会有帮助,但我目前正在查看我编写的一些装置,并且我所有的模型标识符都已正确装箱 这里有一个来自我的用户帐户装置的示例,但请注意,它在YAML中
- model: auth.User
pk: 4
fields:
username: avirtue
first_name: Aurora
last_name: Virtue
is_active: true
is_superuser: false
is_staff: false
password: sha1$90431$9347d343e94122f94f9f02988f026a76d339ab02
email: avirtue@someschool.edu
- model: users.UserProfile
pk: 4
fields:
user: 4
school_id: 420985
professor: false
该文件位于文件夹users/fixtures/(即,有一个应用程序users,该文件位于该应用程序的fixtures文件夹)下
如您所见,这些模型实际上来自两个不同的位置。我使用的第二个来自同一个应用程序,它定义了一个
UserProfile
。第一个实际上是来自项目用于身份验证的django.contrib.auth
模块。我多次遇到同样的错误“无效模型标识符”,我总是意识到它要么使用了错误的应用程序名,要么应用程序名拼写错误。这是“model”:“testapp.article”,testapp可能拼写错误,或者预期的应用程序名称与上述情况不同。尝试检查settings.py,在我的情况下,我只是忘记了在已安装的应用程序中添加应用程序。我认为app.modelclass是正确的格式。您是否尝试转储数据以查看生成了什么?我建议您根据实际数据库检查您的模型。django可能会根据数据库中的数据,而不是模型中的数据来确定模型标识符。&@David Antaramian:是的,db没有与模型正确同步。谢谢你的帮助。我注意到“Article”(在models.py中)和(data.json)中“Article”的情况不同,但这不是问题。我用postgres和sqlite验证了它
- model: auth.User
pk: 4
fields:
username: avirtue
first_name: Aurora
last_name: Virtue
is_active: true
is_superuser: false
is_staff: false
password: sha1$90431$9347d343e94122f94f9f02988f026a76d339ab02
email: avirtue@someschool.edu
- model: users.UserProfile
pk: 4
fields:
user: 4
school_id: 420985
professor: false