【发布时间】:2021-02-13 21:44:30
【问题描述】:
我对 SQLAlchemy 很陌生。 对于这个项目,我使用的是烧瓶和 sqlalchemy。
我需要做的其中一条路线是将用户添加到某个组。所以我需要创建一个不包含在该组中的用户列表。
我做了一个 SQL 语句并在我的数据库中尝试了它,这给了我需要的结果,我只是不擅长将它转换为 SQLAlchemy
select id, email from users where id not in ( select user_id from user_group where group_id = 1);
我的模型看起来像这样
UserGroup = db.Table(
"user_group",
db.Model.metadata,
db.Column("user_id", db.Integer, db.ForeignKey("users.id")),
db.Column("group_id", db.Integer, db.ForeignKey("groups.id")),
)
class Group(db.Model, RestrictionsMixin):
__tablename__ = "groups"
__versioned__ = {}
__restrictions__ = {}
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255), nullable=False, unique=True)
class User(db.Model):
__tablename__ = "users"
__versioned__ = {}
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(250), unique=True, nullable=False)
_password = db.Column(db.LargeBinary(60), nullable=False)
authenticated = db.Column(db.Boolean, default=False)
active = db.Column(db.Boolean, default=True, nullable=False)
email_confirmation_sent_on = db.Column(db.DateTime, nullable=True)
email_confirmed = db.Column(db.Boolean, nullable=True, default=False)
email_confirmed_on = db.Column(db.DateTime, nullable=True)
registered_on = db.Column(db.DateTime, nullable=True)
last_logged_in = db.Column(db.DateTime, nullable=True)
groups = db.relationship("Group", secondary="user_group", backref="users")
【问题讨论】:
标签: flask sqlalchemy flask-sqlalchemy