Files
webstatus/status/admin.py
2025-09-07 16:47:12 +08:00

51 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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("管理后台配置已加载")