On Wed, Oct 14, 2009 at 08:34, robert rottermann <[email protected]> wrote:
> I am using a one to many relation, and would like the result to be ordered by
> a
> field of the child table. however no order by statement is executed when I
> access the related property of the parent object.
>
> this is my declaration:
>
> mitarbeiter_table = Table('mitarbeiter', Base2.metadata, autoload=True)
> class mitarbeiterCL(Base2):
> __table__ = mitarbeiter_table
>
> abwesenheit_table = Table('abwesenheit', Base2.metadata, autoload=True)
> class abwesenheitCL(Base2):
> __table__ = abwesenheit_table
>
> mitarbeiter = relation(
> mitarbeiterCL,
> uselist=False,
> backref='abwesenheiten',
> order_by = abwesenheit_table.c.datumvon,
> )
The problem is that you are specifying the order_by on the wrong side
of the relationship (ie on the ManyToOne side). You need to place the
order_by on the OneToMany side, and in your precise example, that
means, on the backref.
mitarbeiter = relation(
mitarbeiterCL,
uselist=False,
backref=backref('abwesenheiten', order_by=abwesenheit_table.c.datumvon)
)
--
Gaëtan de Menten
http://openhex.org
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---