from django.contrib import admin from .models import OperatorAccount, PlatformAccount, Video @admin.register(OperatorAccount) class OperatorAccountAdmin(admin.ModelAdmin): list_display = ('username', 'real_name', 'email', 'phone', 'position', 'department', 'is_active', 'created_at') list_filter = ('position', 'department', 'is_active') search_fields = ('username', 'real_name', 'email', 'phone') date_hierarchy = 'created_at' readonly_fields = ('created_at', 'updated_at') @admin.register(PlatformAccount) class PlatformAccountAdmin(admin.ModelAdmin): list_display = ('account_name', 'platform_name', 'operator', 'status', 'followers_count', 'last_posting', 'created_at') list_filter = ('platform_name', 'status') search_fields = ('account_name', 'account_id', 'description') date_hierarchy = 'created_at' readonly_fields = ('created_at', 'updated_at') def get_queryset(self, request): """优化查询,减少数据库查询次数""" queryset = super().get_queryset(request) return queryset.select_related('operator') @admin.register(Video) class VideoAdmin(admin.ModelAdmin): list_display = ('title', 'platform_account', 'status', 'views_count', 'likes_count', 'publish_time', 'created_at') list_filter = ('status', 'created_at', 'publish_time') search_fields = ('title', 'description', 'tags') date_hierarchy = 'created_at' readonly_fields = ('created_at', 'updated_at') def get_queryset(self, request): """优化查询,减少数据库查询次数""" queryset = super().get_queryset(request) return queryset.select_related('platform_account', 'platform_account__operator')