2

Conversation、User、および Message オブジェクトを次のように定義した単純なメッセージング システムがあります。

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理想的には、会話のメソッドとして実装したいと思います。

4

1 に答える 1