29 lines
609 B
Python
29 lines
609 B
Python
import uuid
|
|
from typing import Optional, Union
|
|
|
|
from bson import ObjectId
|
|
from pydantic import BaseModel, Field, validator
|
|
from utils import *
|
|
|
|
|
|
# # mongodb _id 类型
|
|
# class OId(ObjectId):
|
|
# @classmethod
|
|
# def __get_validators__(cls):
|
|
# yield cls.validate
|
|
#
|
|
# @classmethod
|
|
# def validate(cls, v):
|
|
# try:
|
|
# return ObjectId(v)
|
|
# except:
|
|
# raise ValueError('无效的格式')
|
|
|
|
|
|
class DBBase(BaseModel):
|
|
id: str = Field(None, alias='_id')
|
|
|
|
@validator('id', pre=True, always=True)
|
|
def default_id(cls, v):
|
|
return v or get_uid()
|