from datetime import datetime from typing import Optional from pydantic import BaseModel, root_validator, Field class DashboardBase(BaseModel): name: str = None class DashboardIn(DashboardBase): project_id: int space_id: int = None folder_id: int = None # @root_validator(pre=True) # def check_parent(cls, values): # if (values.get('folder_id') is None) ^ (values.get('space_id') is None): # return values # else: # raise ValueError('必须属于文件夹或者空间') class DashboardDelete(BaseModel): id: int class DashboardCreate(DashboardBase): name: str class DashboardUpdate(DashboardBase): pass class Dashboard(DashboardBase): name: str user_id: int create_date: datetime class Config: orm_mode = True