Flask-sqlalchemy много-много данных об отношениях - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь создать приложение, похожее на диссонанс, но мне не удалось правильно установить отношения. Я использую таблицу связей "членов", чтобы связать пользователей с сервером. Я считаю, что пользователи и серверы должны хранить копию отношений, чтобы пользователь мог распечатать все серверы, к которым он подключен, и сервер мог видеть всех своих членов. Это код, который у меня есть.

members = db.Table('members',
    db.Column('member_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('workspace_id', db.Integer, db.ForeignKey('workspace.id')))

class User(db.Model):
    __tablename__="user"
    id=db.Column(db.Integer,primary_key=True)
    username=db.Column(db.String,nullable=False, unique=True)
    workspaces = db.relationship(
        "Workspace",
        secondary=members,
        primaryjoin=(members.c.workspace_id == id),
        backref=db.backref('members', lazy='dynamic'), lazy='dynamic')


class Workspace(db.Model):
    __tablename__="workspace"
    id=db.Column(db.Integer,primary_key=True)
    workspaceName=db.Column(db.String,nullable=False)
    subgroups=db.relationship("subGroup",backref="workspace",lazy=True)
    code = db.Column(db.String, nullable=False)
    users = db.relationship(
        "User",
        secondary=members,
        primaryjoin=(members.c.member_id == id),
        backref=db.backref('members', lazy='dynamic'), lazy='dynamic')

Добавляю ли я обе стороны отношений или просто добавляю один раз?

...