[Django] ベースコマンド実行時のエラーをModelに保存

ベースコマンドで作成したプログラム(例 : APIからデータを取得しモデルに登録)を実行したときの成功・エラーの状況などをエラー管理モデルに登録するプログラムです。

from django.core.management.base import BaseCommand
from django.utils import timezone
from AppName.models import ErrorManager  # ErrorManagerモデルのインポート

class Command(BaseCommand):
    help = 'Your command description'

    def handle(self, *args, **options):
        try:
            # メイン処理 Start
            # APIからデータをダウンロードしてBookモデルに登録
            # メイン処理 End

            # 処理が成功した場合の記録
            self.log_event(
                action_name='Your Action Name',
                dl_source_name='Source Name',
                dl_source_url='http://example.com',
                storage_location='/path/to/storage',
                error_flag=0,  # エラーなしを示すフラグ
                error_datetime=timezone.now()
            )
        except Exception as e:

            # エラーが発生した場合の記録
            self.log_event(
                action_name='Your Action Name',
                dl_source_name='Source Name',
                dl_source_url='http://example.com',
                storage_location='/path/to/storage',
                error_flag=1,  # エラーありを示すフラグ
                error_datetime=timezone.now()
            )

    def log_event(self, **kwargs):
        # ErrorManagerモデルに情報を保存
        ErrorManager.objects.create(**kwargs)


Author: webmaster