Hello, 

I'm trying to introduce database persistence into an already existent class 
hierarchy. That mean I have in a separate module all the class representing 
the models of my application (without SQL interaction methods), then I have 
in another module the SQL schema and the mapping (so I'm using the 
classical mapping): 

*sql.py*





















*import sqlalchemy.orm as ormfrom sqlalchemy import Metadata, Integer, 
String, DateTimefrom myproject.models import Item, Ordermetadata = 
MetaData()item = Table('item', metadata,              Column('id', Integer, 
primary_key=True),              Column('name', String),             
 Column('quantity', Integer)             )order = Order('order', metadata,  
            Column('id', Integer, primary_key=True),              
Column('date', DateTime),             )orm.mapper(Item, 
item)orm.mapper(Order, order)*

*models.py*
class Item(object):
    def __init__(self, name, quantity):
        self.name = name
        self.quantity = quantity

class Order(object): 
    def __init__(self, date):
        self.date = date

Now I would like to introduce a M2M relationship with additional column in 
the association table:

order_item = Table('order_item', metadata,
                   Column('order_id', Integer, ForeignKey('order.id')), 
                   Column('item_id', Integer, ForeignKey('item.id')), 
                   Column('price', Float)
                  )


In the documentation, when they present the Association proxy, they do that 
in a declarative way. So they add an attribute to the class:

# ... Class definition ...
items = association_proxy('order_items', 'items')


Is there a way to achieve this without touching the classes in *models.py? 
*Maybe 
using the *orm.mapper? *Or the only way is to modify the class adding the 
association proxy like in the documentation? Do you have any reference to 
point me out on the right direction to use association proxies with 
classical mapping?

Thanks, 

PS: You find this same question on SO, if you want you can answer also there 
<https://stackoverflow.com/q/45259925/1334711>.



-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to