две таблицы User и Chat,связанных между собой отношением многие ко многим.
users_chats_association = db.Table(
"users_chats",
db.Column("user_id", db.Integer, db.ForeignKey("users.id")),
db.Column("chat_id", db.Integer, db.ForeignKey("chats.id")),
)
class User(db.Model):
tablename = "users"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
chats = db.relationship(
"Chat", secondary=users_chats_association, back_populates="users"
)
class Chat(db.Model):
tablename = "chats"
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String)
users = db.relationship(
Если я вызываю ,допустим,
chat = Chat.query.filter(Chat.id == 1).scalar()
то получаю <Chat 1>,а если
chat.users
,то получаю
[<User 1>]
То есть могу из одной таблицы получить значения другой таблицы
Однако данная вещь работать только в случае,Если я поставлю,например, .filter(Chat.id == 1).
Как же решить аналогичную проблему,если я хочу взять несколько значений?
https://www.tutorialspoint.com/sqlalchemy/sqlalchemy_orm_filter_operators.htm В случае несколько значений по одной колонке. // IN This operator checks whether the column value belongs to a collection of items in a list. It is provided by in_() method. В случае нескольких условий //AND This conjunction is generated by either putting multiple commas separated criteria in the filter or using and_() method as given below −
Обсуждают сегодня