Django管理コマンドをViewなどでも利用したい場合、django.core.management.call_command
を利用することで実行出来ます。
https://docs.djangoproject.com/ja/5.1/ref/django-admin/#running-management-commands-from-your-code
に記載があります。
シンプルに呼び出すだけだと、以下のような形です。
from django.core.management import call_command def call_commands(request): call_command("呼びたいDjango管理コマンドの名前") # 他の処理があれば記述...
もちろん、引数、名前付き引数の形で渡すことも可能です。
「あれ、管理コマンドで実装したこの機能を呼び出す場合ってどうするんだっけ・・・」と調べましたが、こう言う方法がありました。
memo
Django管理コマンドの規定クラスのBaseCommand.execute
には以下の説明がありました。
カスタム管理コマンドを実行するためにコード中から execute() を直接呼び出す事は避けてください。代わりに call_command() を利用してください。
ちゃんと外部から呼び出されるように作ったものを実行しましょう、と言うことだと予想しています。