Django管理コマンドのドキュメントには、app/management/commandsフォルダに作成されるすべてのコマンドが表示されています。 app/management/commands/installやapp/management/commands/maintenanceなどのサブフォルダにコマンドを置くことは可能ですか?これはどのようにして行われますか?Django:サブフォルダへの管理コマンドの分割
5
A
答えて
5
残念なことに、Django 1.4の時点で、これを行う方法はないようです。あなたが見ることができるように
def find_commands(management_dir):
"""
Given a path to a management directory, returns a list of all the command
names that are available.
Returns an empty list if no commands are defined.
"""
command_dir = os.path.join(management_dir, 'commands')
try:
return [f[:-3] for f in os.listdir(command_dir)
if not f.startswith('_') and f.endswith('.py')]
except OSError:
return []
が、それだけで任意のサブフォルダを無視して、直接commands
フォルダ内のファイルを考慮:django.core.management.__init__.py
のための情報源は、このメソッドを持っています。実際Command
インスタンスを作成するコードはこれですので、しかし、あなたは「モンキーパッチ」何とかこの関数は、コードの残りの部分は、正常に動作するかどうか:だから
def load_command_class(app_name, name):
"""
Given a command name and an application name, returns the Command
class instance. All errors raised by the import process
(ImportError, AttributeError) are allowed to propagate.
"""
module = import_module('%s.management.commands.%s' % (app_name, name))
return module.Command()
あなたが持っていた場合、コマンドはsubfolder.command
にそれを命名します正しいスクリプトをロードし、適切なクラスをインスタンス化します。
しかし、実用的な観点からは、私はそれを使用していません。確かに、 "namespace'd"コマンドを使用すると便利ですが、必要に応じてすべてのコマンドに接頭辞を付け、セパレータとして別のもの(例えば_
など)を使用することができます。コマンド名の長さと、端末に入力するのに必要なキーストロークの数は同じになります...
関連する問題
- 1. Django管理コマンドImportError
- 2. カスタム管理コマンドのDjangoロギング
- 3. カスタムdjango管理コマンドのデバッグ
- 4. Django管理コマンドCron on Dotcloud
- 5. 分割サブフォルダ:
- 6. Celery-Django:Celeryとdjangoの管理コマンド
- 7. django管理コマンドを作成する
- 8. Djangoの管理 -
- 9. Django管理サイトのDjango管理サイトのdjango-nonrelから
- 10. Django管理者:データベース管理
- 11. 実行Djangoのカスタム管理コマンド - パスの問題
- 12. 任意のdjango管理コマンドの前にコードを実行
- 13. Djangoの管理コマンドをオーバーライドする複数のアプリケーションを扱う
- 14. Django管理のオーバーライドセーブメソッド
- 15. Djangoの管理インライン
- 16. Djangoのアプリ(...)/管理/
- 17. は、Djangoの管理
- 18. カスタム管理コマンドで動作しないdjangoモデルインスタンスの作成
- 19. UnitTest/WebTestのPython/Django管理コマンドを実行する
- 20. virtualenv内のcrontabでカスタムDjango管理コマンドを自動化
- 21. zshの:コマンドが見つかりません:Djangoの管理者をDjangoプロジェクトに
- 22. Django - Django管理者のページコンテンツを管理する
- 23. Django管理インターフェース
- 24. 各サブフォルダのrunコマンド
- 25. Djangoの管理上の.jpg
- 26. djangoの管理ページのIOError
- 27. Djangoの管理list_displayのSHORT_DESCRIPTION
- 28. Djangoの管理:他のインライン
- 29. Djangoの管理カスタムウィジェットのForeignKey
- 30. ゲストコミュニティの役割への '通知の管理'権限の割り当て - Liferay
あなたの問題に関する詳細を教えてください。それはあなたが探しているものですか? https://docs.djangoproject.com/en/dev/howto/custom-management-commands/ – Marat
私はapp/management /コマンドのサブフォルダにコマンドを入れたいと思っています。私はその質問にもっと詳細を加えました。 –