ベースコマンドで作成したプログラム(例 : 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)