我在Flask SQLAlchemy中有用戶和房間模型。如果Room與用戶[user1,user2,...]存在,則需要過濾。過濾器必須準確。
這裏是我的模型:
如何篩選確切的多對多
room_users_table = db.Table(
'room_users',
db.metadata,
db.Column('user', db.Integer, db.ForeignKey('user.id')),
db.Column('room', db.Integer, db.ForeignKey('room.id'))
)
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer, primary_key=True)
first_name = db.Column(db.String(80))
last_name = db.Column(db.String(80))
password = db.Column(db.String(80))
email = db.Column(db.String(120), unique=True)
rooms = db.relationship(
"Room",
secondary=room_users_table,
back_populates="users"
)
class Room(db.Model):
__tablename__ = 'room'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), unique=True)
users = db.relationship(
"User",
secondary=room_users_table,
back_populates="rooms"
)
謝謝,我已經找遍了所有simular問題,並不能找到答案。
通過精確你的意思是一個'Room'絕只有'用戶'與給定的電子郵件作爲房間用戶?不是帶有給定電子郵件的房間,也可能是其他房間。 –
是的,你理解它是正確的。只有給定用戶的房間。例如,如果我想發送消息兩個User1和User2,我需要知道與我們3的空間是否已經存在。我只需要3個房間,而不是3個房間和其他用戶。我希望,榜樣會幫助你。 –