Sqlalchemy - 一对多用户定位

希望一切顺利。我很难弄清楚如何用 Flask 和 SQLALCHEMY 编写这个数据库功能。


我希望能够向数据库中已经存在的站点注册用户。


注册它们时,我希望路由能够将该用户分配给数据库中的站点模型。我想这样做的原因是我以后可以向连接到特定站点的所有用户发送一条消息,或者向所有站点的所有用户发送一条消息。


这是我目前的用户和站点模型:


class User(db.Model, UserMixin):

id = db.Column(db.Integer, primary_key=True)

site = db.Column(db.String())

username = db.Column(db.String(20), unique=True, nullable=False)

email = db.Column(db.String(100), unique=True, nullable=False)

password = db.Column(db.String(60), nullable=False)

adminstatus = db.Column(db.Boolean)

user_data = db.relationship('Rma', backref='userdata', lazy=True)

# sites = db.relationship('Sites', secondary=usertosite, backref=db.backref('sites', lazy='dynamic'))


def __repr__(self):

    return f"User('{self.username}, '{self.email}')"


class Sites(db.Model):

id = db.Column(db.Integer, primary_key=True)

sitename = db.Column(db.String(), nullable=False)

contractstart = db.Column(db.String(), nullable=False)

contractend = db.Column(db.String(), nullable = False)

hwkey = db.Column(db.String(), nullable=False)

stations = db.Column(db.String(), nullable=False)

printers = db.Column(db.String(), nullable = False)

remprinters = db.Column(db.String(), nullable = False)

bof = db.Column(db.Boolean())

processor = db.Column(db.String(), nullable = False)

giftopt = db.Column(db.String(), nullable = False)


我不确定如何做到这一点,因为通常当我将表单添加到数据库时,我会将所有表单元素添加到特定模型。如果我尝试一对多的关系,我将不得不分配 Sites 模型及其所有元素以及不理想的特定用户,因为该站点已经在 db 中创建。我是一个超级菜鸟,我可能遗漏了一些步骤,但如果可能,请提供帮助。谢谢你们。


人到中年有点甜
浏览 159回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python