[英]create a many to many relationship with flask_sqlalchemy
我想在用戶和事件之間建立關系。 我希望用戶能夠注冊活動。
我已經有一個一對多關系的用戶和事件模型
class User(db.Model,UserMixin):
__tablename__ = 'users'
id = db.Column(db.Integer,primary_key = True)
.........
events = db.relationship('Event',backref='organiser', lazy=True)
##事件模型
class Event(db.Model):
__tablename__ = 'events'
id = db.Column(db.Integer,primary_key = True)
........
user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
我需要幫助來創建用戶注冊表。 該表應包含其他字段,而不僅僅是事件和用戶 ID
我希望能夠做這樣的查詢
user.event_registrations
event.event_registrations
event.event_registrations.users
user.events
這是我按照文檔創建表格的嘗試。
class EventRegistration(db.Model):
__tablename__ = 'event_registrations'
user_id = Column(ForeignKey('users.id'), primary_key=True)
event_id = Column(ForeignKey('events.id'), primary_key=True)
extra_data1 = Column(String(50))
extra_data2 = Column(String(50))
event = db.relationship("Event", back_populates="users")
user = db.relationship("Member", back_populates="events")
class User(db.Model):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
....
events = db.relationship("EventRegistration", back_populates="user")
class Event(db.Model):
__tablename__ = 'events'
id = Column(Integer, primary_key=True)
....
users = db.relationship("EventRegistration", back_populates="event")
幫助正確設置數據庫 謝謝
創建多對多關系的正確方法是創建關聯表
Events=db.Table('Events',
db.Column(db.Integer,db.ForeignKey('user.id'),primary_key=True),
db.Column(db.Integer,db.ForeignKey('event.id'),primary_key=True)
)
class User(db.Model,UserMixin):
__tablename__ = 'users'
id = db.Column(db.Integer,primary_key = True)
.........
events = db.relationship('Event',secondary=Events,backref='organiser', lazy=True)
class Event(db.Model):
__tablename__ = 'events'
id = db.Column(db.Integer,primary_key = True)
........
如果你想了解更多關於多對多的信息,我建議你閱讀這篇文章
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.