Files
django-vue3-admin-gd/backend/system/views/login_log.py
2025-07-03 16:53:40 +08:00

43 lines
1.3 KiB
Python

from system.models import LoginLog
from utils.serializers import CustomModelSerializer
from utils.custom_model_viewSet import CustomModelViewSet
from rest_framework import serializers
from utils.permissions import HasButtonPermission
from django_filters import rest_framework as filters
class LoginLogSerializer(CustomModelSerializer):
"""
系统访问记录 序列化器
"""
result_text = serializers.SerializerMethodField()
class Meta:
model = LoginLog
fields = '__all__'
read_only_fields = ['id', 'create_time', 'update_time']
def get_result_text(self, obj):
return obj.get_result_display()
class LoginLogFilter(filters.FilterSet):
username = filters.CharFilter(field_name='username', lookup_expr='icontains')
create_time = filters.DateFromToRangeFilter(field_name='create_time')
class Meta:
model = LoginLog
fields = ['username', 'create_time']
class LoginLogViewSet(CustomModelViewSet):
"""
系统访问记录 视图集
"""
queryset = LoginLog.objects.filter(is_deleted=False).order_by('-id')
serializer_class = LoginLogSerializer
filterset_class = LoginLogFilter
search_fields = ['username']
ordering_fields = ['create_time', 'id']
ordering = ['-create_time']
permission_classes = [HasButtonPermission]