Pra*_*epb 3 sqlalchemy flask flask-sqlalchemy
我有一个 MySQL 数据库,下面是定义的两个模型。
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)
Run Code Online (Sandbox Code Playgroud)
我使用以下查询获取所有属性:
properties = models.Property.query.all()
和使用以下查询的 premium_date 代理:
agents = models.Agent.query.filter(models.Agent.premium_date is not None).all()
但我想先显示拥有 premium(agent.premium_date) 的代理发布的属性,然后显示其余属性。(这就像优先考虑高级代理)。
注意:由于 premium_date 是可选的,一些代理不会是高级用户,因此该列将为空。
无论如何在 Flask-SQLAlchemy 中这样做?任何帮助都会很棒。
小智 6
您可以使用order_by(model.Agent.premium_date.desc())将所有具有溢价日期的代理排序到顶部,但是这也会按这些日期的降序对具有溢价日期的代理进行排序,这可能不是最佳的。
我认为,更好的选择是分别拉出两个列表,然后在 Python 中对它们进行排序和附加,而不是依赖 SQL 来完成。
| 归档时间: |
|
| 查看次数: |
3602 次 |
| 最近记录: |