It seems as though attributes which are dynamic_loaders cannot be told
to eagerly load subattributes which are themselves dynamic_loaders.
IE, A has dynamic_loader for instances of B, which has dynamic_loader
for instances of C.
Assuming we have an instance of A, this works fine:
query = a_instance.b # gimme instances of B, query-like
for b_instance in query:
# do stuff, possibly accessing b_instance.c
However, if I do this:
query = a_instance.b # gimme instances of B, query-like
query = query.options(sa_orm.eagerload('c'))
Then the following is broken:
for b_instance in query:
with this error:
for b_instance in query:
File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/query.py",
line 1676, in instances
rows = [process[0](row, None) for row in fetch]
File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/mapper.py",
line 2234, in _instance
populate_state(state, dict_, row, isnew, only_load_props)
File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/mapper.py",
line 2113, in populate_state
populator(state, dict_, row)
File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/strategies.py",
line 1109, in new_execute
'append_without_event')
File "/usr/lib64/python2.6/site-packages/sqlalchemy/util.py", line
1206, in __init__
self._data_appender = getattr(data, via)
AttributeError: 'list' object has no attribute 'append_without_event'
This is with sqlalchemy 0.6.3
--
See, when the GOVERNMENT spends money, it creates jobs; whereas when
the money is left in the hands of TAXPAYERS, God only knows what they
do with it. Bake it into pies, probably. Anything to avoid creating
jobs. - Dave Barry?
Jon
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.