2

いくつかのアプリをセットアップしましたが、そのうちの 1 つにフィクスチャを追加しました。アプリフォルダ直下のサブディレクトリ「fixtures」に「initial_data.yaml」ファイルを作成したので、フルパスはproject_dir\apps\job\fixtures\initial_data.yaml.

私は両方を試しました

python manage.py syncdb

python manage.py schemamigration ジョブ --auto

そして、それらの両方が私に与えます:

フィクスチャが見つかりません。

ここで私は何を間違っていますか?

4

4 に答える 4

2

pyYAML をインストールしますか?

http://pyyaml.org/wiki/PyYAML

manage.py は、initial_data.yaml をロードするために yaml-parser を必要とします。

于 2011-05-24T10:09:08.213 に答える
1

Django のドキュメントには、次のように明確に記載されています。

デフォルトでは、Django は各アプリ内のフィクスチャ ディレクトリでフィクスチャを探します。

しかし、そうではないことがわかりました。settings.py で FIXTURE_DIRS を定義しない場合、django は manage.py と settings.py がある同じディレクトリで initial_data.yaml を探します。私はdjango 1.3.1でこの問題を抱えていました。

Python yaml パーサーもインストールする必要があります。そうしないと、django は yaml 形式のフィクスチャを無視します。Ubuntu を使用している場合は、コンソールで次のコマンドを発行してパーサーをインストールできます。

sudo apt-get install python-yaml
于 2012-05-21T16:51:31.420 に答える
0

次のことを試して、どのように進むかを確認してください。

既存のデータをダンプし、DBを空にしてから、syncdbを再試行します(DBをクリアしても問題ない場合)。

python manage.py dumpdata
python manage.py syncdb

それは動作しますか?その場合、「ブループリント」フィクスチャファイルがあります。

そうでない場合は、使用しているDjangoのバージョンを教えてください。

于 2011-05-05T01:43:10.710 に答える
0

入る必要があると思います

/project/job/fixtures/

アプリに名前が付けられていると仮定してjob

于 2011-05-05T00:41:47.493 に答える