2016-01-30 18 views
-1

我有一個MySQL數據庫,下面是定義的兩個模型。獲取有序結果Flask-sqlalchemy

class Agent(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    email = db.Column(db.String(255), nullable=False, unique=True) 
    premium_date = db.Column(db.DateTime, nullable=True) 

class Property(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    agent_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) 
    agent = db.relationship('Agent') 
    title = db.Column(db.String(255), nullable=False) 

我正在使用下面的查詢所有屬性: properties = models.Property.query.all()

和代理與premium_date使用下面的查詢: agents = models.Agent.query.filter(models.Agent.premium_date is not None).all()

但我想顯示張貼誰擁有代理屬性溢價(agent.premium_date),然後顯示其餘的屬性。 (這就像優先考慮優質代理)。

注意:由於premium_date是可選的,因此某些代理不會成爲高級用戶,因此該列將爲空。

無論如何要在Flask-SQLAlchemy中做到這一點?任何幫助都會很棒。

回答

2

您可以使用order_by(model.Agent.premium_date.desc())將所有具有優先日期的業務代表排序到頂部,但是這也會按照這些日期的降序對這些業務代表進行排序,這可能不是最優的。

我認爲一個更好的選擇是分別拉出兩個列表,然後用Python對它們進行排序和追加,而不是依靠SQL來完成。

+0

非常感謝。它拯救了我的一天:) – Pradeepb