Python 3.8.2、Django==3.0.5の環境で、カスタムコマンドを作成の上、python manage.py コマンド名 を実行したところ、下記のエラーが発生しコマンド処理が実行されない事象が発生。
エラーメッセージ
vscode@d2a06e1c5d42:/workspace$ python manage.py crawl Unknown command: 'crawl' Type 'manage.py help' for usage.
事象発生時のDjangoプロジェクトフォルダ構成
project/ # Djangoプロジェクトトップディレクトリ
manage.py
app_name/
__init__.py
models.py
management/
__init__.py
commands/
__init__.py
crawl.py
views.py
原因
settings.py内のINSTALLED_APPSリストにカスタムコマンドpyファイルが設置されているアプリ名を設定していなかった為。
解決法
上記の通り、INSTALLED_APPSリストにアプリ名を設定することで当該エラーは解消する。
INSTALLED_APPS = ( ‘django.contrib.auth’, ‘django.contrib.admin’, ‘django.contrib.contenttypes’, ‘django.contrib.sessions’, ‘django.contrib.sites’, ‘app_name’, # <= アプリ名を追加 ) [/bash]動作確認としてpython manage.py helpを実行することで、利用できるカスタムコマンド一覧(Available subcommands)を出力できる。
参考サイト
django custom command not found – Stack Overflow