from django.contrib import admin from .models import ServiceGroup, Service, ServiceCheckRecord # 引入loguru库用于日志记录 try: from loguru import logger except ImportError: import logging logger = logging.getLogger(__name__) @admin.register(ServiceGroup) class ServiceGroupAdmin(admin.ModelAdmin): list_display = ('name', 'description') search_fields = ('name', 'description') def save_model(self, request, obj, form, change): if change: logger.info(f"更新服务分组: {obj.name}") else: logger.info(f"创建新服务分组: {obj.name}") super().save_model(request, obj, form, change) @admin.register(Service) class ServiceAdmin(admin.ModelAdmin): list_display = ('name', 'group', 'host', 'port', 'check_type', 'is_active', 'created_at') list_filter = ('group', 'check_type', 'is_active') search_fields = ('name', 'host', 'description') def save_model(self, request, obj, form, change): if change: logger.info(f"更新服务: {obj.name} ({obj.host})") else: logger.info(f"创建新服务: {obj.name} ({obj.host})") super().save_model(request, obj, form, change) @admin.register(ServiceCheckRecord) class ServiceCheckRecordAdmin(admin.ModelAdmin): list_display = ('service', 'status', 'response_time', 'checked_at') list_filter = ('status', 'service__group', 'service') search_fields = ('service__name', 'message') date_hierarchy = 'checked_at' readonly_fields = ('service', 'status', 'response_time', 'message', 'checked_at') def has_add_permission(self, request): return False # 禁止手动添加检测记录,只能通过API上报 def has_change_permission(self, request, obj=None): return False # 禁止修改检测记录 logger.info("管理后台配置已加载")