我有一个简单的消息系统,其中定义了对话、用户和消息对象,如下所示:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
class Conversation(db.Model):
id = db.Column(db.Integer, primary_key=True)
class Message(db.Model):
id = db.Column(db.Integer, primary_key=True)
text = db.Column(db.String)
author = db.relationship('User')
conversation = db.relationship('Conversation', backref=db.backref('messages', lazy='dynamic'))
我想让所有参与对话的用户。
在 SQL 中对我来说很容易:
select distinct users.*
from users inner join messages on messages.author_id = users.id
where messages.conversation_id = 1;
但是我不知道如何使用 SQLAlchemy 的语法来做到这一点,所以我得到了对象而不仅仅是字段。理想情况下,我想将它实现为get_authors
对话的一种方法。