Код: Выделить всё
class UsersInformationModel(BaseDataModel):
id: Optional[int] = None
is_vip: bool = False
creation_tag: Optional[dict] = None # JSON field mapped to a dictionary
user_id: int # Not nullable
created_at: Optional[datetime] = None
updated_at: Optional[datetime] = None
branch_id: Optional[int] = None
setting: Optional[dict] = None # JSON field mapped to a dictionary
vip_type: int = 0
medication_history: Optional[bool] = None
other_disease: Optional[str] = None
tobacco_alcohol_use: Optional[bool] = None
consumed_medications: Optional[str] = None
consumed_medications_amount: Optional[str] = None
Код: Выделить всё
from pydantic import BaseModel
class BaseDataModel(BaseModel):
class Config:
populate_by_name = True
exclude_unset = True
def dict(self, **kwargs):
return super().model_dump(exclude_unset=True, **kwargs)
Код: Выделить всё
data = {
'user_id': self.current_user.id,
'medication_history': self.data.medication_history,
'other_disease': self.data.other_disease,
'tobacco_alcohol_use': self.data.tobacco_alcohol_use,
'consumed_medications': self.data.consumed_medications,
'branch_id': None,
'consumed_medications_amount': self.data.consumed_medications_amount,
}
data = UsersInformationModel(**data)
data_dict = data.dict()
Как изменить BaseDataModel, чтобы данные содержали только упомянутые поля? Независимо от того, установлено ли значение None, я хочу, чтобы оно содержало только явно включенные поля.
Подробнее здесь: https://stackoverflow.com/questions/792 ... set-fields
Мобильная версия