Estoy usando Postgresql, FastApi, Sqlalchemy, Pydantic. Tengo un modelo llamado "Compañía". Una columna del modelo es postgresql "JSONField". En este modelo, planeo mantener las direcciones de las empresas como una lista.
Logré agregar una dirección al campo, pero cuando quiero actualizar o eliminar alguna de estas direcciones, no sé qué hacer.
Mi esquema Pydantic
from pydantic import BaseModel, Json from typing import Optional,List,Dict class addresses(BaseModel): id:int name:str class Config: orm_mode=True class customers_companies(BaseModel): name:str #addresses: Json[List[addresses]] addresses: List[addresses] class Config: orm_mode=TruePublicar enrutador
@customers_router.post('/companies') def create_company(request:schemas.customers_companies, db: Session = Depends(get_db)): new_company = models.Customers_Companies(name=request.name,addresses= jsonable_encoder(request.addresses)) db.add(new_company) db.commit() db.refresh(new_company) return new_companyObtener enrutador por ID
@customers_router.get('/companies/{id}', response_model=schemas.customers_companies) def get_company(id, db: Session = Depends(get_db)): company = db.query(models.Customers_Companies).filter(models.Customers_Companies.id==id).first() return company Resultado de > Obtener enrutador por ID
por ejemplo, quiero actualizar solo la dirección con id=1.
{ "name": "string", "addresses": [ { "id": 1, "title": "Address 1" }, { "id": 2, "title": "Address 2" } ] }