2010-12-30 4 views
4

나는 여기에 간단한 대답이있을 것이라고 확신하지만 나는 그것을 볼 수 없다. 데이터베이스에 조명기를로드하려고하지만 어떤 모델 식별자를 사용하더라도 계속해서 DeserializationError: invalid model identifier:... 오류가 발생합니다.Django 픽처 데이터에 유효한 모델 식별자가 없습니까?

파일 구조 :

from django.db import models 
from django.conf import settings 

class Article(models.Model): 
    headline = models.CharField(max_length=100, default='Default headline') 
    pub_date = models.DateTimeField() 

    def __unicode__(self): 
     return self.headline 

    class Meta: 
     ordering = ('-pub_date', 'headline') 

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" 
     } 
    } 
] 

이 이후

testproject/ 
    testapp/ 
     fixtures/ 
      data.json 
     __init__.py 
     models.py 
     tests.py 
     views.py 
    sqlite3.db 
    __init__.py 
    manage.py 
    settings.py 
    urls.py 

, 나는 http://www.djangoproject.com/documentation/models/fixtures/에서 모델을 사용하고 설비에서 처음으로 이동하다 나는 시도했습니다. testapp.article, testproject.article, testproject.testapp.article 그리고 그들 모두 같은 오류를 행. 파이썬 2.6과 1.2.4를 실행 중이고 syncdb 대신 loaddata를 사용하고 있습니다. 어떤 아이디어?

+2

에 응용 프로그램을 추가 잊지 settings.py를 확인하십시오. 생성 된 것을보기 위해 데이터를 덤프하려고 했습니까? – luc

답변

2

귀하의 data.json 파일은 괜찮습니다. 나는 그것을 시도하고 작동합니다.

db가 모델과 동기화되어 있는지 확인 하시겠습니까?

파일을로드하기 위해 실행 하시겠습니까? 루크는,

+0

실제 데이터베이스와 비교하여 모델을 확인하는 것이 좋습니다. django는 모델 식별자가 아닌 데이터베이스의 모델 식별자를 기반으로 할 수 있습니다. –

+0

& @David Antaramian : 예, db가 모델과 올바르게 동기화되지 않았습니다. 당신의 도움을 주셔서 감사합니다. – exm

0

내가이도 전혀 도움이 될 것입니다 있는지 확실하지 않습니다,하지만 나는 현재 내가 쓴 일부 비품 찾고 있어요 파일로 "manage.py dumpdata에 testapp"출력을 비교 제안

모든 모델 ID가 올바르게 처리됩니다.

다음은 내 사용자 계정 고정 장치의 예입니다. 그러나 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: [email protected] 

- model: users.UserProfile 
    pk: 4 
    fields: 
    user: 4 
    school_id: 420985 
    professor: false 

이 폴더의 사용자 아래 파일에/비품/(즉, 응용 프로그램 사용자가되며,이 파일이 해당 응용 프로그램의 비품 폴더에 있습니다).

보시다시피, 모델은 실제로 두 개의 서로 다른 위치에서 나옵니다. 두 번째는 동일한 응용 프로그램에서 사용하는 것으로 UserProfile을 정의합니다. 첫 번째 모듈은 실제로 프로젝트에서 인증에 사용하는 django.contrib.auth 모듈에 있습니다.

+0

"article"(models.py)과 "article"(data.json) 사이에 다른 사례가 있는데 문제가되지 않습니다. 나는 postgres와 sqlite를 사용하여 그것을 확인했다. –

0

"잘못된 모델 식별자"와 같은 오류가 여러 번 있었고, 내가 항상 깨달은 것은 잘못된 앱 이름을 사용하고 있거나 앱 이름의 철자가 잘못되었다는 것입니다. 그것은 "model"입니다 : "testapp.article", testapp는 잘못 입력되었거나 위의 경우와 같이 testapp가 아닌 다른 app 이름을 기대합니다.

0

내 경우에는 내가 그냥 app.modelclass이 올바른 형식이라고 생각 INSTALLED_APPS