I now have a code that seems to work, but I'm not sure I did it right :

Base = automap_base()

class Dispositif(Base):
    __tablename__ = 'dispositifs'
    hardwares = association_proxy('disp_hdw_collection', 'hardware_ref')

class Hardware(Base):
    __tablename__ = 'hardware'

Base.prepare(engine, reflect=True)

Another question is why sqlalchemy produce two queries to get hardwares 
collections from a dispositif :

>>> some_disp.hardwares
2015-08-28 10:36:41,722 INFO sqlalchemy.engine.base.Engine SELECT 
disp_hdw.iddispositif 
AS disp_hdw_iddispositif, disp_hdw.idhardware AS disp_hdw_idhardware, 
disp_hdw.instance AS disp_hdw_instance
FROM disp_hdw
WHERE %s = disp_hdw.iddispositif
2015-08-28 10:36:41,725 INFO sqlalchemy.engine.base.Engine (2721L,)
2015-08-28 10:36:41,768 INFO sqlalchemy.engine.base.Engine SELECT 
hardware.hdw_type 
AS hardware_hdw_type, hardware.id AS hardware_id, hardware.idbox AS 
hardware_idbox
FROM hardware
WHERE hardware.id = %s
2015-08-28 10:36:41,772 INFO sqlalchemy.engine.base.Engine (268L,)


instead of somewhat like :

SELECT hardware.hdw_type AS hardware_hdw_type, hardware.id AS hardware_id, 
hardware.idbox AS hardware_idbox
FROM hardware
JOIN disp_hdw ON hardware.id = disp_hdw.idhardware
WHERE disp_hdw.iddispositif = %s


Le vendredi 28 août 2015 10:20:55 UTC+3, yoch....@gmail.com a écrit :
>
> Hello,
>
> I want to use assocation proxy pattern 
> <http://docs.sqlalchemy.org/en/latest/orm/extensions/associationproxy.html> 
> with automap. I tried this code :
>
>
> Base = automap_base()
>
> class Dispositif(Base):
>     __tablename__ = 'dispositifs'
>     hardwares = association_proxy('disp_hardwares', 'hardware')
>
> class Hardware(Base):
>     __tablename__ = 'hardware'
>
> Base.prepare(engine, reflect=True)
>
> but it does not work.
>
> Any help appreciated.
>
> Best regards
>

-- 
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 http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to