How to provide initial data for models

It’s sometimes useful to prepopulate your database with hard-coded data when you’re first setting up an app. You can provide initial data with migrations or fixtures.

마이그레이션으로 초기 데이터 제공하기.

앱의 초기 데이터를 자동으로 로드하려면 :ref:’데이터 마이그레이션’을 생성하십시오. 마이그레이션은 테스트 데이터베이스를 설정할 때 실행되므로:ref:’일부 제한 사항’에 따라 데이터를 사용할 수 있습니다.

고정 장치를 통해 데이터를 제공합니다.

고정 장치를 사용하여 데이터를 제공할 수도 있지만 이 데이터는 TransactionTestCase.fixtures. 를 사용하는 경우를 제외하고 자동으로 로드되지 않습니다.

고정 장치는 Django가 데이터베이스로 가져오는 방법을 알고 있는 데이터의 모음입니다. 데이터가 이미 있는 경우 고정장치를 만드는 가장 간단한 방법은 :tembadmin:’manage.py dumpdata’ 명령을 사용하는 것입니다. 또는 수동으로 고정장치를 작성할 수 있으며 고정장치는 JSON, XML 또는 YAML(PyYAML_installed) 문서로 작성할 수 있습니다. :doc:’직렬화 설명서’는 지원되는 각:ref:’직렬화 형식’에 대한 자세한 정보를 제공합니다.

그러나 한 예로 JSON에서 “사람” 모델의 고정장치는 다음과 같습니다.

[
  {
    "model": "myapp.person",
    "pk": 1,
    "fields": {
      "first_name": "John",
      "last_name": "Lennon"
    }
  },
  {
    "model": "myapp.person",
    "pk": 2,
    "fields": {
      "first_name": "Paul",
      "last_name": "McCartney"
    }
  }
]

그리고 YAML로 된 동일한 fixture 가 있습니다.

- model: myapp.person
  pk: 1
  fields:
    first_name: John
    last_name: Lennon
- model: myapp.person
  pk: 2
  fields:
    first_name: Paul
    last_name: McCartney

이 데이터는 앱 안에 있는 “고정장치” 디렉토리에 저장됩니다.

You can load data by calling manage.py loaddata <fixturename>, where <fixturename> is the name of the fixture file you’ve created. Each time you run loaddata, the data will be read from the fixture and reloaded into the database. Note this means that if you change one of the rows created by a fixture and then run loaddata again, you’ll wipe out any changes you’ve made.

Django가 고정 파일을 찾는 위치입니다.

기본적으로 Django는 각 앱에 있는 “fixtures” 디렉토리에서 고정 장치를 찾습니다. : 설정을 설정할 수 있습니다.FIXT_DIRS는 Django가 찾아야 할 추가 디렉토리 목록으로 설정됩니다.

실행 시 :djadmin:’manage’입니다.py load data’. 고정 파일 경로를 지정할 수도 있습니다. 이 경로는 일반적인 디렉터리 검색을 재정의합니다

더 보기

또한 :ref:’testing framework’에서는 고정장치를 사용하여 일관된 테스트 환경을 설정할 수 있습니다.