Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

173
Vistas
pydantic excluye múltiples campos del modelo

En pydantic, hay una forma más limpia de excluir múltiples campos del modelo, algo como:

 class User(UserBase): class Config: exclude = ['user_id', 'some_other_field']

Soy consciente de que lo siguiente funciona, pero estaba buscando algo más limpio como Django.

 class User(UserBase): class Config: fields = {'user_id': {'exclude':True}, 'some_other_field': {'exclude':True} }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Pydantic excluirá las variables de clase que comienzan con un guión bajo. entonces, si se ajusta a su caso de uso, puede cambiar el nombre de sus atributos.

 class User(UserBase): _user_id=str some_other_field=str ....
over 4 years ago · Santiago Trujillo Denunciar

0

Escribí algo como esto para mi json:

 from pydantic import BaseModel class CustomBase(BaseModel): def json(self, **kwargs): include = getattr(self.Config, "include", set()) if len(include) == 0: include = None exclude = getattr(self.Config, "exclude", set()) if len(exclude) == 0: exclude = None return super().json(include=include, exclude=exclude, **kwargs) class User(CustomBase): name :str = ... family :str = ... class Config: exclude = {"family"} u = User(**{"name":"milad","family":"vayani"}) print(u.json())

puede anular dict y otro método como.

over 4 years ago · Santiago Trujillo Denunciar

0

Una posible solución es crear una nueva clase basada en la clase base usando create_model:

 from pydantic import BaseModel, create_model def exclude_id(baseclass, to_exclude: list): # Here we just extract the fields and validators from the baseclass fields = baseclass.__fields__ validators = {'__validators__': baseclass.__validators__} new_fields = {key: (item.type_, ... if item.required else None) for key, item in fields.items() if key not in to_exclude} return create_model(f'{baseclass.__name__}Excluded', **new_fields, __validators__=validators) class User(BaseModel): ID: str some_other: str list_to_exclude = ['ID'] UserExcluded = exclude_id(User, list_to_exclude) UserExcluded(some_other='hola')

Que regresará:

 > UserExcluded(some_other='hola')

Que es una copia de la clase base pero sin parámetro 'ID'.

Si tiene la identificación en los validadores, es posible que también desee excluir esos validadores.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda