Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

410
Views
Python peewee / fastapi obtiene Usuario sin cargar elementos

Así que seguí este tutorial para kombine fastapi & peewee: enlace

Y debido a este tutorial obtuve esos modelos (peewee):

 class User(peewee.Model): email = peewee.CharField(unique=True, index=True) hashed_password = peewee.CharField() is_active = peewee.BooleanField(default=True) class Meta: database = db class Item(peewee.Model): title = peewee.CharField(index=True) description = peewee.CharField(index=True) owner = peewee.ForeignKeyField(User, backref="items") class Meta: database = db

Y esos modelos base (fastapi):

 class PeeweeGetterDict(GetterDict): def get(self, key: Any, default: Any = None): res = getattr(self._obj, key, default) if isinstance(res, peewee.ModelSelect): return list(res) return res class ItemBase(BaseModel): title: str description: Optional[str] = None class ItemCreate(ItemBase): pass class Item(ItemBase): id: int owner_id: int class Config: orm_mode = True getter_dict = PeeweeGetterDict class UserBase(BaseModel): email: str class UserCreate(UserBase): password: str class User(UserBase): id: int is_active: bool items: List[Item] = [] class Config: orm_mode = True getter_dict = PeeweeGetterDict

Tengo esto para llamar a la API:

 database.db.connect() database.db.create_tables([User, Item]) database.db.close() app = FastAPI() def get_db(db_state=Depends(reset_db_state)): try: database.db.connect() yield finally: if not database.db.is_closed(): database.db.close() @app.get("/users/", response_model=List[schemas.User], dependencies=[Depends(get_db)]) def read_users(): return list(models.User.select()

Esta es la base. Ahora comienza mi problema/pregunta:

Si llamo a esta solicitud (GET "/users/"), obtengo el siguiente JSON como resultado (los datos son imaginarios, solo se trata de la estructura)

 [ { "email": "123@test.com" "id": 1 "is_active": 1 "items": [ { "title": "item1" "description": "placeholder" "id": "1" "owner_id": "1" } ] } ]

Así es como se supone que debe ser, PERO no lo quiero exactamente así. Quiero que solo obtenga los datos del usuario, sin sus elementos.

Entonces... mi pregunta:

¿Cómo puedo obtener los datos del usuario sin cargar los datos de los artículos?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Hay una manera simple de hacerlo, response_model_exclude es exactamente lo que está buscando.

 @app.get("/users/", response_model=List[schemas.User], response_model_exclude={"items"}, dependencies=[Depends(get_db)]) def read_users(): return list(models.User.select()

Ref: Modelo de respuesta de FastAPI

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!