use 'sites':relation(Site, backref=backref('attachments',
order_by=attachment_table.c.name)) for now.

On Mar 30, 5:50 am, Alexandre CONRAD <[EMAIL PROTECTED]> wrote:
> Hello,
>
> I have a problem with "order_by" on a many-to-many relationship (using
> assign_mapper):
>
> ------------------------------
> attachment_table = Table('attachments', meta,
>      Column('id', Integer, primary_key=True),
>      Column('file', Binary, nullable=False),
>      Column('name', Unicode(40), nullable=False),
>      Column('type', Unicode(30)),
>      Column('date', DateTime, default=datetime.now),
>      Column('size', Integer, nullable=False),
>      Column('description', Unicode(40)),
> )
>
> attachments_has_sites = Table('attachments_has_sites', meta,
>      Column('id_attachment', None, ForeignKey('attachments.id'),
> primary_key=True),
>      Column('id_site', None, ForeignKey('sites.id'), primary_key=True),
> )
>
> class Attachment(object):
>      pass
>
> attachment_mapper = assign_mapper(ctx, Attachment, attachment_table,
>      properties={
>          'file':deferred(attachment_table.c.file),
>          'sites':relation(Site, backref="attachments",
> secondary=attachments_has_sites, cascade="save-update"),
>      },
>      order_by=attachment_table.c.name,
> )
> ------------------------------
>
> So I have a Site object where I can ask for it's attachments:
>
>    s = model.Site.get(1)
>    attachment_list = s.attachments
>
> But it fires the following QUERY:
>
> SELECT attachments.name AS attachments_name, attachments.description AS
> attachments_description, attachments.date AS attachments_date,
> attachments.type AS attachments_type, attachments.id AS attachments_id,
> attachments.size AS attachments_size
> FROM attachments, attachments_has_sites
> WHERE %s = attachments_has_sites.id_site AND attachments.id =
> attachments_has_sites.id_attachment ORDER BY
> attachments_has_sites.id_attachment
>
> the "ORDER BY" is computed against the weak table (secondary)
> "attachments_has_sites".
>
> Regards,
> --
> Alexandre CONRAD


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to