그룹 개체를 그룹에 속한 구성원 목록으로 초기화하는 방법 (사용자는 그룹에 속한 그룹을 알고 있어야 함))?다 대다 관계로 개체 만들기
사용자는 많은 그룹이 있습니다. 그룹에는 많은 사용자가 있습니다.
나는 또한 사용자 클래스에서 add_to_group
메서드를 시도했지만 실제로 해결되지 않았습니다.
다 대 다 관계를 처음으로 다루므로 아직 수행 방법을 찾지 못했고 모든 게시물은 다 대다 관계를 쿼리하는 것이 아니라 그것을 써.
class User(db.Model):
__tablename__ = 'User'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), unique = False, nullable = False)
username = db.Column(db.String(80), unique = True, nullable = False)
fb_id = db.Column(db.String(80), unique = True, nullable = False)
groups = db.relationship('Groups', secondary=groups, backref=db.backref('User', lazy='dynamic'))
groups = db.Table('groups',
db.Column('group_id', db.Integer, db.ForeignKey('Group.id')),
db.Column('user_id', db.Integer, db.ForeignKey('User.id'))
)
class Group(db.Model):
__tablename__ = 'Group'
id = db.Column(db.Integer, primary_key=True)
last_updated = db.Column(db.DateTime, mutable=True)
def __init__(self):
self.last_updated = datetime.utcnow();
고마워요!
db.backref()의 첫 번째 매개 변수는 매핑 된 클래스의 이름이 아니라 backref 속성이 취해야하는 이름입니다. 따라서 일관성을 유지하기 위해 '사용자'에서 '사용자'로 변경하고 싶을 것입니다. 그러면'Group' 클래스의 각 인스턴스에서'users'라는 속성이 생성됩니다. –
또한, db.relationship의 첫 번째 매개 변수는 관계의 다른쪽에있는 클래스의 이름이기 때문에'Groups'를'Group'으로 대체하려고합니다. –
팁 주셔서 감사합니다. 내 코드를 적절하게 변경합니다. – GangstaGraham