[Sqlalchemy-tickets] [sqlalchemy] #2833: viewonly=True should prevent object from marked as dirty
Brought to you by:
zzzeek
|
From: sqlalchemy <mi...@zz...> - 2013-10-01 15:47:32
|
#2833: viewonly=True should prevent object from marked as dirty
--------------------+------------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: defect | Status: new
Priority: high | Milestone: 0.9.0
Component: orm | Severity: major - 1-3 hours
Keywords: | Progress State: in queue
--------------------+------------------------------------
{{{
#!python
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class A(Base):
__tablename__ = 'a'
id = Column(Integer, primary_key=True)
class B(Base):
__tablename__ = 'b'
id = Column(Integer, primary_key=True)
a_id = Column(Integer, ForeignKey('a.id'))
a = relationship("A", backref=backref("bs", viewonly=True))
e = create_engine("sqlite://", echo=True)
Base.metadata.create_all(e)
sess = Session(e)
a, b = A(), B()
sess.add_all([a, b])
sess.commit()
b.a = a
assert b in sess.dirty
assert a not in sess.dirty # "a" isn't dirty here, esp. w/ viewonly
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2833>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|