[python-brasil] deletar objeto da sessão no sqlalchemy

98 views
Skip to first unread message

João Júnior

unread,
Jul 5, 2011, 2:23:34 PM7/5/11
to python...@yahoogrupos.com.br
 

Pessoal,
busco todos os dados da tabela "A" mapeada no sqlalchemy, com
session.query.all(), mando remover um objeto existente com
session.delete() e efetuo um session.commit().
Pois bem quando eu faço lista1= session.query.all() para buscar os
dados da tabela "A", o objeto que mandei remover ainda é retornado,
alguém sabe o que pode estar acontecendo?
Vou colar o código abaixo para ajudar.

class Cliente(Base):
__tablename__ = tablesName.cliente
id = Column(Integer, primary_key=True, autoincrement=True)
nome = Column(Unicode(255), nullable=False, unique=True)

lista = self.session.query(Cliente).all()
cliente = lista[0]
session.delete(cliente)
session.commit()
lista1 = self.session.query(Cliente).all()
cliente in lista1 #essa linha retorna True

Obrigado!

João Júnior
Matemático Computacional - Computational Mathematician

E-mail: joaoju...@gmail.com
Fone: +55 (31) 9642-7061
www.dcc.ufmg.br/~jcaj
http://br.linkedin.com/in/joaojunior

__._,_.___
Atividade nos últimos dias:
.

__,_._,___

Israel Ben Guilherme Fonseca

unread,
Jul 5, 2011, 3:53:32 PM7/5/11
to python...@yahoogrupos.com.br
Desativasse o autoflush ou coisa do tipo?

Na engine, coloca echo=True para ver a saida em SQL do que ta sendo gerado.
Pra mim teu codigo me parece certo a principio. Tambem pode dar uma startada
no SQLite3 só pra testar isoladamente.


Em 5 de julho de 2011 15:23, João Júnior <joaoju...@gmail.com> escreveu:

> **


>
>
> Pessoal,
> busco todos os dados da tabela "A" mapeada no sqlalchemy, com
> session.query.all(), mando remover um objeto existente com
> session.delete() e efetuo um session.commit().
> Pois bem quando eu faço lista1= session.query.all() para buscar os
> dados da tabela "A", o objeto que mandei remover ainda é retornado,
> alguém sabe o que pode estar acontecendo?
> Vou colar o código abaixo para ajudar.
>
> class Cliente(Base):
> __tablename__ = tablesName.cliente
> id = Column(Integer, primary_key=True, autoincrement=True)
> nome = Column(Unicode(255), nullable=False, unique=True)
>
> lista = self.session.query(Cliente).all()
> cliente = lista[0]
> session.delete(cliente)
> session.commit()
> lista1 = self.session.query(Cliente).all()
> cliente in lista1 #essa linha retorna True
>
> Obrigado!
>
> João Júnior
> Matemático Computacional - Computational Mathematician
>
> E-mail: joaoju...@gmail.com
> Fone: +55 (31) 9642-7061

> www.dcc.ufmg.br/~jcaj <http://www.dcc.ufmg.br/%7Ejcaj>
> http://br.linkedin.com/in/joaojunior
>
>


[As partes desta mensagem que não continham texto foram removidas]

------------------------------------

Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/python-brasil/

<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html


João Júnior

unread,
Jul 6, 2011, 12:22:10 PM7/6/11
to python...@yahoogrupos.com.br
 

Fala Israel,
Então eu já estava utilizando o sqlite, quando fiz Session =
sessionmaker(bind=self.engine, expire_on_commit=False)
daí funcionou!

Valeu!

Em 5 de julho de 2011 16:53, Israel Ben Guilherme Fonseca
<israe...@gmail.com> escreveu:

--

João Júnior
Matemático Computacional - Computational Mathematician

E-mail: joaoju...@gmail.com
Fone: +55 (31) 9642-7061
www.dcc.ufmg.br/~jcaj

Atividade nos últimos dias:
.

__,_._,___
Reply all
Reply to author
Forward
0 new messages