SQLAlchemy ¿ORDEN DESCENDIENDO?

¿Cómo puedo usar ORDER BY descending en una consulta de SQLAlchemy como la siguiente?

Esta consulta funciona, pero los devuelve en orden ascendente:

 query = (model.Session.query(model.Entry) .join(model.ClassificationItem) .join(model.EnumerationValue) .filter_by(id=c.row.id) .order_by(model.Entry.amount) # This row :) ) 

Si lo bash

 .order_by(desc(model.Entry.amount)) 

luego me sale: NameError: global name 'desc' is not defined .

Al igual que un FYI, también puede especificar esas cosas como atributos de columna. Por ejemplo, podría haber hecho:

 .order_by(model.Entry.amount.desc()) 

Esto es útil ya que puede usarlo en otros lugares, como en una definición de relación, etc.

Para más información, puede consultar este

 from sqlalchemy import desc someselect.order_by(desc(table1.mycol)) 

Uso de @ jpmc26

Otra cosa que podrías hacer es:

 .order_by("name desc") 

Esto dará lugar a: ORDEN POR desc. Nombre. La desventaja aquí es el nombre de columna explícito usado en orden por.

Puedes usar la función .desc() en tu consulta de esta manera

 query = (model.Session.query(model.Entry) .join(model.ClassificationItem) .join(model.EnumerationValue) .filter_by(id=c.row.id) .order_by(model.Entry.amount.desc()) ) 

Esto ordenará por cantidad en orden descendente o

 query = session.query( model.Entry ).join( model.ClassificationItem ).join( model.EnumerationValue ).filter_by( id=c.row.id ).order_by( model.Entry.amount.desc() ) ) 

Complementario en @Radu answer, Al igual que en SQL, puede agregar el nombre de la tabla en el parámetro si tiene muchas tablas con el mismo atributo.

 .order_by("TableName.name desc") 

Podemos hacerlo de varias maneras. La más simple será hacerlo de la siguiente manera:

res=ModelName.query.filter(ModelName.var1==cond).order_by(ModelName.var1.desc())