| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- # coding=utf-8
- """
- @project: MaxKB
- @Author:虎虎
- @file: login.py
- @date:2025/4/14 10:30
- @desc:
- """
- from drf_spectacular.types import OpenApiTypes
- from drf_spectacular.utils import OpenApiParameter
- from common.mixins.api_mixin import APIMixin
- from common.result import ResultSerializer
- from users.serializers.login import LoginResponse, LoginRequest, CaptchaResponse
- class ApiLoginResponse(ResultSerializer):
- def get_data(self):
- return LoginResponse()
- """
- Request 和Response 都可以使用此方法
- 使用serializers.Serializer
- class LoginRequest(serializers.Serializer):
- username = serializers.CharField(required=True, max_length=64, help_text=_("Username"), label=_("Username"))
- password = serializers.CharField(required=True, max_length=128, label=_("Password"))
- 使用serializers.ModelSerializer Request不要使用serializers.ModelSerializer的方式
- class LoginRequest(serializers.ModelSerializer):
- class Meta:
- model = User
- fields = ['username', 'password']
- """
- class LoginAPI(APIMixin):
- @staticmethod
- def get_request():
- return LoginRequest
- @staticmethod
- def get_response():
- return ApiLoginResponse
- @staticmethod
- def get_parameters():
- return [OpenApiParameter(
- name="code",
- type=OpenApiTypes.STR,
- location=OpenApiParameter.PATH,
- required=True,
- )]
- class ApiCaptchaResponse(ResultSerializer):
- def get_data(self):
- return CaptchaResponse()
- class CaptchaAPI(APIMixin):
- @staticmethod
- def get_response():
- return ApiCaptchaResponse
|