43 lines
1.3 KiB
Python
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]
|