Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django夹具数据没有有效的模型标识符?_Python_Django_Fixtures - Fatal编程技术网

Python Django夹具数据没有有效的模型标识符?

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_

我相信这里有一个简单的答案,但我看不出来。我试图将fixture加载到数据库中,但无论使用什么模型标识符,我都会不断得到
反序列化错误:无效的模型标识符:…
错误

文件结构:

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