boa noite, não estou conseguindo identificar o meu erro, por mais que (acho que) entendi a natureza do erro.
def traduz_produtos_optica(produtos_optica):
def cria_produto_optica_com_tupla(tuplao):
return ProdutoOptica(tuplao[1], tuplao[2], tuplao[3], tuplao[4], id=tuplao[0])
return list(map(cria_produto_optica_com_tupla(produtos_optica)))
class ProdutoOptica:
def __init__(self, subgrupo, marca, modelo, pdv_origem, id=None):
self.id = id
self.subgrupo = subgrupo
self.marca = marca
self.modelo = modelo
self.pdv_origem = pdv_origem
class ProdutoOpticaDao:
def __init__(self, db):
self.__db = db
def salvar(self, produto_optica):
cursor = self.__db.connection.cursor()
if (produto_optica.id):
cursor.execute(SQL_ATUALIZA_PRODUTO_OPTICA, (produto_optica.subgrupo, produto_optica.marca,
produto_optica.modelo, produto_optica.pdv_origem, produto_optica.id))
else:
cursor.execute(SQL_CRIA_PRODUTO_OPTICA, (produto_optica.subgrupo, produto_optica.marca,
produto_optica.modelo, produto_optica.pdv_origem))
produto_optica.id = cursor.lastrowid
self.__db.connection.commit()
return produto_optica
def listar_produtos_optica(self):
cursor = self.__db.connection.cursor()
cursor.execute(SQL_BUSCA_PRODUTO_OPTICA)
produtos_optica = traduz_produtos_optica(cursor.fetchall())
return produtos_optica
def busca_por_id(self, id):
cursor = self.__db.connection.cursor()
cursor.execute(SQL_PRODUTO_OPTICA_POR_ID, (id,))
tupla = cursor.fetchone()
return ProdutoOptica(tupla[1], tupla[2], tupla[3], tupla[4], id=tupla[0])
SQL_BUSCA_PRODUTO_OPTICA = 'SELECT id, subgrupo, marca, modelo, pdv_origem from produtos_optica'
SQL_PRODUTO_OPTICA_POR_ID = 'SELECT id, subgrupo, marca, modelo, pdv_origem from produtos_optica where id = %s'
SQL_ATUALIZA_PRODUTO_OPTICA = 'UPDATE produtos_optica SET subgrupo=%s marca=%s modelo=%s pdv_origem=%s where id = %s'
SQL_CRIA_PRODUTO_OPTICA = 'INSERT into produtos_optica (subgrupo, marca, modelo, pdv_origem) values (%s, %s, %s, %s)'