from typing import Optional from sqlalchemy.orm import Session from mooc.crud.crud_base import CRUDBase from mooc.models.admin import Admin from mooc.schemas.admin import AdminCreate, AdminUpdate class CRUDAdmin(CRUDBase[Admin, AdminCreate, AdminUpdate]): def get_by_username(self, db: Session, *, username: str) -> Optional[Admin]: return self.get_by_field(db, "username", username) def delete(self, db: Session, *, id: int) -> Admin: """重写删除方法,实现软删除""" obj = self.get(db, id=id) if obj: obj.is_delete = 1 db.add(obj) db.commit() db.refresh(obj) return obj admin = CRUDAdmin(Admin)