Files
webstatus/status/admin.py

51 lines
1.8 KiB
Python
Raw Normal View History

2025-07-31 21:21:45 +08:00
from django.contrib import admin
2025-09-07 16:47:12 +08:00
from .models import ServiceGroup, Service, ServiceCheckRecord
2025-07-31 21:21:45 +08:00
2025-09-07 16:47:12 +08:00
# 引入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)
2025-07-31 21:21:45 +08:00
class ServiceAdmin(admin.ModelAdmin):
2025-09-07 16:47:12 +08:00
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 # 禁止修改检测记录
2025-07-31 21:21:45 +08:00
2025-09-07 16:47:12 +08:00
logger.info("管理后台配置已加载")