Files
webprewviewapi/account/schemas.py
2025-03-18 20:19:54 +08:00

49 lines
1.0 KiB
Python

from typing import List
from ninja import Schema, ModelSchema
from pydantic import EmailStr, Field
from .models import User, RoleChoices
class UserListSchema(ModelSchema):
@classmethod
def get(cls, obj):
raw_password = obj.raw_password if obj.role == RoleChoices.NORMAL else ""
return cls(
id=obj.id,
username=obj.username,
raw_password=raw_password,
role=obj.role,
date_joined=obj.date_joined,
last_login=obj.last_login,
is_active=obj.is_active,
)
class Meta:
model = User
fields = [
"id",
"username",
"raw_password",
"role",
"date_joined",
"last_login",
"is_active",
]
class UserRegistrationSchema(Schema):
username: str
email: EmailStr
password: str = Field(min_length=6, max_length=20)
class UserLoginSchema(Schema):
username: str
password: str
class BatchUsersIn(Schema):
names: List[str]
classname: str