Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

181
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda