我正在尝试使用SQLAlchemy在网络应用中代表俱乐部和用户。用户必须具有俱乐部列表,并且俱乐部必须具有用户列表。我认为我已经通过多对多关系正确地做到了这一点,因为用户可以在多个俱乐部中。 但是,我不能成为俱乐部负责人。这个想法是,一个领导者仍然应该能够领导多个俱乐部,但是每个俱乐部只有一个领导者。
我尝试组合关系的不同组合,但是根本无法添加领导者。
list2
我希望能够创建用户并创建俱乐部。俱乐部在实例化时应以将成为领导者的用户作为参数。
答案 0 :(得分:1)
这两条评论将带您到需要去的地方。建议的代码:
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
# ...
clubs = db.relationship('Club', secondary=user_club_assoc_table,
backref=db.backref('members', lazy='dynamic'))
class Club(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), unique=True, nullable=False)
leader_id = db.Column(db.Integer, db.ForeignKey('user.id'))
leader = db.relationship('User', primaryjoin='club.leader_id == user.id')