¿Los criterios de clasificación por defecto de sqlalchemy?

Ahora ordeno los datos en la base de datos por su atributo 1. Si hay un empate de diferentes elementos con el mismo valor del atributo 1, los datos parecen estar ordenados por su id. Sin embargo, me gustaría romper el empate ordenando por desc (id). ¿Cómo podría cambiar los criterios de clasificación predeterminados de la base de datos si hay un empate?

¡Gracias!

Al menos en SQLAlchemy v0.9.8 esto es posible por medio de la configuración del mapeador .

Si tiene una tabla de usuarios y desea recuperar los registros ordenados siempre por nombre fullname algo como esto debería funcionar:

 from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String Base = declarative_base() class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String) fullname = Column(String) password = Column(String) __mapper_args__ = { "order_by":fullname } def __repr__(self): return "" % ( self.name, self.fullname, self.password) 

El orden está completamente determinado por la base de datos, no por SQLAlchemy. Con SQL simple solo agrega cláusulas ORDER BY adicionales, en SQLAlchemy ORM hace lo mismo encadenando los métodos order_by. Por ejemplo:

 for eq in session.query(Equipment).order_by(Equipment.model_id).order_by(Equipment.name).all(): print (eq) 

El que quede más a la izquierda es el principal.