2014-05-23 6 views
1

내 비품은 잘못된 순서로로드하는, 그래서 그들은 설치에 실패 - 인앱는, 응용 프로그램 B에서 모델에 외래 키를 가진 모델을 만들지 만 장고가로드하려고 에 대한 초기 데이터는 B입니다.장고 초기 데이터 고정 설치 순서

어떻게 초기 데이터가 설치되는 순서를 제어 할 수 있습니까?

답변

1

당신은 settings.py FIXTURE_DIRS에서 비품에 대한 DIRS을 지정할 수 있지만 이러한fixtures 응용 프로그램 디렉토리 후 를 추가됩니다. 따라서 app_B/fixturesapp_B/slow_fixtures으로 변경하고 app_B/slow_fixturesFIXTURE_DIRS에 추가 할 수 있습니다.

https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-FIXTURE_DIRS

+0

감사합니다. 그러나, 나는 그것이 해킹의 일종이라고 느낍니다 ... 더 우아한 해결책이 있습니까? – Dor

+0

https://github.com/django/django/blob/master/django/core/management/commands/loaddata.py, 메소드 fixture_dirs. __Maybe__ 장고는 'INSTALLED_APPS'와 같은 순서로 조명기를로드하지만, 코드에서 잠수 할 시간이 없습니다. app_B 앞에 app_A를 넣으십시오. – xbello

+0

@Dor, https://github.com/django/django/blob/master/django/apps/registry.py에서 'def populate()'에서 OrderedDict를 사용하여 동일한 항목에 Apps를 저장하는 것을 볼 수 있습니다 INSTALLED_APPS '에 주문하십시오. 'def fixture_dirs()'에서 동일한 Dict가 사용되었으므로 조명기의로드 순서는 INSTALLED_APPS와 같다고 가정합니다. – xbello