Запрос в отношениях один-ко-многим - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть две таблицы, отношение которых один-ко-многим

class User (db.Model):
    __tablename__ = 'user_model'
    id = db.Column(db.Integer, primary_key=True)
    name =  db.Column(db.String(50), nullable = False)
    messages = db.relationship ('Message' , cascade = 'all,delete', backref = 'user_model' , lazy = True)
class Message (db.Model):
    __tablename__ = 'message_model'
    id = db.Column(db.Integer, primary_key=True)
    context =  db.Column(db.Text, nullable = False)
    user_id = db.Column(db.Integer, db.ForeignKey('user_model.id'))

Предположим, для определенного пользователя c (пользователь с id = 1) я хочу получить все сообщения, которые связаны с этим пользователем, и длина сообщения меньше 50.
Как я могу это сделать?
Что-то вроде этого:

user = User.query.get (1)
messages_less_than_50 = user.messages.query.filter (len (Message.context) < 50)

Могу ли я сделать запрос на user.messages?

...