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

172
Visualizações
SqlModel : Fastapi AttributeError: type object 'AddressBaseCore' has no attribute '__config__'

I am new to fastapi and SQLModel, i was trying to implement some basic code from my existing lib, I have an Address Class

like

@dataclass
class Address(DataClassJsonMixin):
    addr1: str
    city: str
    province: str

I simply want to create a class in SQLModel that connects to DB. I have only added a new column ID here. i am getting below error where i am not sure why is it asking for a config attribute.

class AddressMaster(SQLModel, Address):
    id: int = Field(default=None, primary_key=True)


AttributeError: type object 'Address' has no attribute '__config__'

It's failing on config = getattr(base, "__config__") that has some information which I am not able to comprehand.

# Only one of the base classes (or the current one) should be a table model
# this allows FastAPI cloning a SQLModel for the response_model without
# trying to create a new SQLAlchemy, for a new table, with the same name, that
# triggers an error

try 1:

from sqlmodel import SQLModel, Field
from ...core import Address
from dataclasses import dataclass


@dataclass
class AddressDB(Address, SQLModel):
    pass

# END AddressDB

class AddressMaster(AddressDB, table=True):
    """
    Address Master Table
    """
    id: int = Field(default=None, primary_key=True)

# END AddressMaster

Object Creation

objAd = AddressMaster.from_dict({"addr1": "Kashmir", "city": "Srinagar", "province": "Kashmir"})
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

There is an error in the semantics of your AdressMaster class. If it is meant to be a class related to your DB. Then you have to specify in the first parameter either the class inheriting from a SQL model or from SQLmodel (And in this case, you should rewrite each attribute of your model within this class) directly. And it is necessary to pass it the argument table=True

class AddressMaster(Address, table=True):
    id: int = Field(default=None, primary_key=True)
    # Here the attributes will be inherited from your Adress class 
    # (provided that this one in its parentage is an inheritance link with a modelSQL)

Or

class AddressMaster(SQLModel, table=True):
    id: int = Field(default=None, primary_key=True)
    addr1: str
    city: str
    province: str
    # Here, the class is independent from the other pydantic 
    # validation models since it inherits directly from SQLModel

In Try 1: You are trying to pass two parameters to your AddressDB class, one of which is an SQLModel. However, SQLModel allows to override SQLAlchemy, and accepts as parameter only models from SQLAlchemy or Pydantic. During the initialization, it goes through the arguments passed in parameter and tries to call the method or attribute Config which exists in the pydantic and SQLAlchemy models. This is the source of your error since you pass in parameter a DataClassJsonMixin which has no Config method or attribute. This is the origin of your error.

How to solve it. You just have to not call DataClassJsonMixin which seems to me to encode / decode JSON data. However, this is a basic behavior of Pydantic (which is used behind SQLModel).

So if you use the first method shown above (i.e. inherited from a SQLModel), you just have to put your validation fields inside AddressDB and make this class inherit only from SQLModel

class AddressDB(SQLModel):
    addr1: str
    city: str
    province: str
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