2013-07-31 8 views
7

私はdjangoプロジェクトに2つ以上のアプリケーションがあるとしたら、Aというアプリケーションを1つだけ持っていれば、manage.pyコマンドを正しく実行して実行できました。複数のアプリケーションでカスタムdjango manage.pyコマンドを書く方法

Bという新しいアプリがあり、https://docs.djangoproject.com/en/dev/howto/custom-management-commands/に記載されているように、B/manangement/commandsのディレクトリ構造を作成してカスタムモジュールを作成しました。

私はpython manage.pyを実行すると、文句を言うとUnknown commandを続けます。しかし、このコマンドを別のアプリ、つまりフォルダA/management/commandsに移動してpython manage.py <command>を実行すると、シームレスに動作します。

どのように私はこれを解決できますか?

+0

あなたが行ったことを正確に私たちに伝えてくれるわけではありません。 –

+1

おそらくあなたは設定でインストールされたアプリでBを追加していません。 – Babu

+0

私は誤植だと思いますが、それをよりよく指摘しています。単語「manangement」のスペルが間違っています。 –

答えて

16

@Babuはコメントの中で、settings.pyINSTALLED_APPSにあなたのアプリを追加していない可能性があります。

commandsのフォルダにある__init__.pyファイル(Pythonモジュールに必要)がないことが考えられます。

また、「管理」または「コマンド」のスペルミス、または実行しているコマンドの名前が間違っている可能性があります(ごめんなさい)。あなただけの指定コマンドなしでpython manage.pyを実行した場合

+0

__init__.pyファイルは内部ディレクトリにあり、上位ディレクトリにはありませんでした。 – user1335608

0

ほとんどの場合、あなたはそれがDjangoが見つけることができるコマンドのリストを出力します、あなたのsettings.py

で、アプリBが含まれていませんでした。

これはスペルミスにコマンド名を除外することができますが、あなたはmanagementcommands両方のパッケージを作ったかどうかの質問に答えていない、またはアプリBは、単にあなたのsettings.INSTALLED_APPS

0

に記載されていない場合にアプリBINSTALLED_APPSsettings.pyに登録していないようです。 __init__.pyファイルを両方のフォルダ(管理およびコマンド)に追加してパッケージとして作成する必要があります。フォルダ名のスペルを間違えないように注意してください。

関連する問題