2

次の構造のdjangoプロジェクトがあります。

/djninja # project dir
  /djninja # main app dir
  /bands # app dir
  /fans # app dir
  /lyrics # app dir

initial_data.yamlロード フィクスチャを作成するためのファイルを作成しましたsyncdb(YAML 形式を好みます)。ドキュメントによると、アプリのfixturesサブディレクトリに配置します。そして、私はそうしました:

/djninja
  /djninja
  /bands
    /fixtures
      - initial_data.yaml
  /fans
  /lyrics

しかし、syncdb はファイルを省略していました。次に、それをメインのプロジェクト ディレクトリに移動しました。

/djninja
  /djninja
    /fixtures
      - initial_data.yaml
  /bands
  /fans
  /lyrics

そして、それはまだ省略されています。コマンド内でフィクスチャをロードしたいのですが、syncdb何が間違っていますか?

4

2 に答える 2

1

initial_data.yaml次の場合に限り、取得する必要があります。

  • pyyaml がインストールされている
  • ( の)にfixturesリストされているアプリのいずれかのディレクトリにありますINSTALLED_APPSsettings.py

したがって、pyyaml があるとすれば、おそらく後者です。fixturesディレクトリが にリストされているいずれかのアプリ内にINSTALLED_APPSあり、起動して実行されていることを確認してください。

このレイアウトの場合:

/djninja
  /djninja
  /bands
    /fixtures
      - initial_data.yaml
  /fans
  /lyrics

が有効なパッケージであり、 on である場合、 to を追加bandsするINSTALLED_APPSとうまくいくはずです。bandsPYTHONPATH

Django が他のディレクトリでフィクスチャを検索するようにしたい場合は、ドキュメントの「Django がフィクスチャ ファイルを検索する場所」サブセクションに記載されているアドバイスに従い、設定を使用して、FIXTURE_DIRS検索する追加のディレクトリのリストにすることができます。

于 2013-03-14T17:03:31.710 に答える