# -*- coding: utf-8 -*-
|
"""
|
@File : serializers.py
|
@Time : 2023/1/13 11:34
|
@Author : geekbing
|
@LastEditTime : -
|
@LastEditors : -
|
@Description : 序列化&反序列化
|
"""
|
|
from rest_framework import serializers
|
from django.contrib.auth import get_user_model
|
|
from lunarlink.models import LoginLog
|
|
User = get_user_model()
|
|
|
class UserLoginSerializer(serializers.Serializer):
|
"""
|
用户登录序列化
|
"""
|
|
username = serializers.CharField(required=True)
|
password = serializers.CharField(required=True)
|
|
|
class UserModelSerializer(serializers.ModelSerializer):
|
"""
|
访问统计序列化
|
"""
|
|
class Meta:
|
model = User
|
fields = [
|
"id",
|
"is_superuser",
|
"username",
|
"name",
|
"is_staff",
|
"is_active",
|
"groups",
|
]
|
depth = 1
|
|
|
class LoginLogSerializer(serializers.ModelSerializer):
|
"""
|
登录日志权限-序列化器
|
"""
|
|
class Meta:
|
model = LoginLog
|
fields = "__all__"
|
read_only_fields = ["id"]
|
|
# 在 UserLoginSerializer 下方添加
|
class ChangePasswordSerializer(serializers.Serializer):
|
"""
|
修改密码序列化
|
"""
|
old_password = serializers.CharField(required=True, max_length=128)
|
new_password = serializers.CharField(required=True, min_length=6, max_length=128)
|
confirm_password = serializers.CharField(required=True, max_length=128)
|
|
def validate(self, attrs):
|
if attrs['new_password'] != attrs['confirm_password']:
|
raise serializers.ValidationError("两次输入的新密码不一致")
|
return attrs
|