give the trunk a try, theres been some fixes to the mapper
compilation which can affect those properties being set up, and this
seems to be the same problem.
or, you can say mapper.compile() to force the compilation.
On Jun 20, 2006, at 7:13 PM, Anton Krasovsky wrote:
> Hi,
>
> I see some strange mapper behavior in 0.2.3:
>
> I have few tables like these
>
> node_table = Table("node", __engine__,
> Column('node_id', Integer, primary_key=True),
> Column('name_index', Integer, nullable=True),
> )
>
> host_table = Table("host", __engine__,
> Column('host_id', Integer, primary_key=True),
> Column('hostname', String(64), nullable=False,
> unique=True),
> )
>
> node_name_table = Table("node_name", __engine__,
> Column('node_name_id', Integer, primary_key=True),
> Column('node_id', Integer,
> ForeignKey('node.node_id')),
> Column('host_id', Integer,
> ForeignKey('host.host_id'), unique='index1'),
> Column('name', String(64), nullable=False,
> unique='index1'),
> )
>
> subscription_table = Table( "subscription",
> __engine__,
> Column('subscription_id', Integer,
> primary_key=True),
> Column('node_id', Integer,
> ForeignKey('node.node_id')),
> Column('source_name_id', Integer,
> ForeignKey('node_name.node_name_id')),
> )
>
>
> And some mappers:
>
> node_mapper = mapper(Node, node_table)
>
> host_mapper = mapper(Host, host_table)
>
> node_name_mapper = mapper(NodeName, node_name_table,
> properties = {
> 'node' : relation(Node, backref=backref('names')),
> 'host' : relation(Host),
> }
> )
>
> subscription_mapper = mapper(Subscription,
> subscription_table, properties = {
> 'node' : relation(Node, backref='subscription'),
> 'source_name' : relation(NodeName),
> }
> )
>
>
> In 0.2.3 I get error accessing Node instance, saying
> that Node.names does not exists:
>
>>>> objectstore.query(Node).get(1).names
> Traceback (most recent call last):
> File "<console>", line 1, in ?
> AttributeError: 'Node' object has no attribute 'names'
>
>
> In 0.2.2 everything is fine:
>
>>>> objectstore.query(Node).get(1).names
> [<NodeName object at 0x8da06cc>]
>
> However, even in 0.2.3 following works:
>
>>>> objectstore.query(NodeName).get(1).node.names
> [<NodeName object at 0x8da8a8c>]
>
>
> Regards,
> Anton Krasovsky
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
>
> _______________________________________________
> Sqlalchemy-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users
_______________________________________________
Sqlalchemy-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users