Hello, i am trying to figure out how association_proxy() could be used
in case of "regular" rather than declarative style definitions. I
can't figure out what can be done to mitigate the issue and hence i
seek help here.
Thanks in advance...
The code below is copy/pasted sample from the official docs without
declarative part and when run outputs this:
Traceback (most recent call last):
File "d.py", line 36, in <module>
'keywords': association_proxy('kw', 'keyword')
File "/usr/local/python/3.2/lib/python3.2/site-packages/
SQLAlchemy-0.7.4-py3.2.egg/sqlalchemy/orm/__init__.py", line 1114, in
mapper
return Mapper(class_, local_table, *args, **params)
File "/usr/local/python/3.2/lib/python3.2/site-packages/
SQLAlchemy-0.7.4-py3.2.egg/sqlalchemy/orm/mapper.py", line 201, in
__init__
self._configure_properties()
File "/usr/local/python/3.2/lib/python3.2/site-packages/
SQLAlchemy-0.7.4-py3.2.egg/sqlalchemy/orm/mapper.py", line 818, in
_configure_properties
self._configure_property(key, prop, False)
File "/usr/local/python/3.2/lib/python3.2/site-packages/
SQLAlchemy-0.7.4-py3.2.egg/sqlalchemy/orm/mapper.py", line 1016, in
_configure_property
% (key, prop))
sqlalchemy.exc.ArgumentError:
keywords=<sqlalchemy.ext.associationproxy.AssociationProxy object at
0x34ad190> is not an instance of MapperProperty or Column
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from sqlalchemy import Column, Integer, String, ForeignKey, Table
from sqlalchemy.orm import relationship, mapper
from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.schema import MetaData
metadata = MetaData()
class User():
def __init__(self, name):
self.name = name
class Keyword():
def __init__(self, keyword):
self.keyword = keyword
user_table = Table('user', metadata,
Column('id', Integer, primary_key=True),
Column('name', String(64))
)
keyword_table = Table('keyword', metadata,
Column('id', Integer, primary_key=True),
Column('keyword', String(64))
)
userkeywords_table = Table('userkeywords', metadata,
Column('user_id', Integer, ForeignKey("user.id")),
Column('keyword_id', Integer, ForeignKey("keyword.id"))
)
mapper(Keyword, keyword_table)
mapper(User, user_table,
properties={
'kw': relationship(Keyword, secondary=userkeywords_table),
'keywords': association_proxy('kw', 'keyword')
})
user = User('jek')
user.keywords.append('cheese inspector')
print (user.keywords)
user.keywords.append('snack ninja')
print (user.kw)
--
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.