SQLAlchemy-查询现有项的关联表
sqlalchemy的问题是查询关联表'nut_auf'以检查是否已经存在一个实体/行,其中SQLAlchemy-查询现有项的关联表,sql,database,flask,sqlalchemy,flask-sqlalchemy,Sql,Database,Flask,Sqlalchemy,Flask Sqlalchemy,sqlalchemy的问题是查询关联表'nut_auf'以检查是否已经存在一个实体/行,其中 ln_auf_id与Auftrag.id匹配 其中已经有一行ln_auf_id&ln_nut_id与传入参数匹配 这是我的dbmodel nut_auf = db.Table('LnVerwaltet', db.Column('ln_nut_id', db.Integer, db.ForeignKey('nutzer.id')), db.Column('ln_auf_id', db.In
nut_auf = db.Table('LnVerwaltet',
db.Column('ln_nut_id', db.Integer, db.ForeignKey('nutzer.id')),
db.Column('ln_auf_id', db.Integer, db.ForeignKey('auftrag.id')))
class Nutzer(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
nut_email = db.Column(db.String(150), unique=True)
nut_fname = db.Column(db.String(150))
nut_sname = db.Column(db.String(150))
auftrag_ = db.relationship('Auftrag', secondary=nut_auf,
back_populates='nutzer_')
class Auftrag(db.Model):
id = db.Column(db.Integer, primary_key=True)
auf_name = db.Column(db.String(50))
auf_eingang = db.Column(db.DateTime(timezone=True), default=func.now())
nutzer_ = db.relationship('Nutzer', secondary=nut_auf, back_populates='auftrag_')
我想通过此路径访问查询
@views.route('/auf_accept/<auf_id>', methods=['GET','POST'])
def auf_accept(auf_id):
auftrag = Auftrag.query.get(auf_id)
auf_bearbeiter_mail = request.form.get('auf_bearbeiter')
nutzer = db.session.query(Nutzer).filter(Nutzer.nut_email==auf_bearbeiter_mail).first()
if nutzer:
auftrag.auf_angenommen = 2
if nut_auf_exist:
db.session(nut_auf).filter(nut_auf.ln_auf_id==auf_id).update({nut_auf.ln_nut_id:nutzer.id})
else:
auftrag.nutzer_.append(nutzer)
else:
flash('User nicht vorhanden!', category='error')
#db.session.query(auftrag)
db.session.commit()
有人有主意吗
提前谢谢
n1 = db.session.query(nut_auf).join(Auftrag).join(Nutzer).filter(Auftrag.id == auf_id)
n12 = Nutzer.query.join(nut_auf).join(Auftrag).filter((nut_auf.c.ln_nut_id == nutzer.id) & (nut_auf.c.ln_auf_id == auftrag.id)).all()
n13 = db.session.query(nut_auf).filter((nut_auf.c.ln_nut_id == nutzer.id).filter(nut_auf.c.ln_auf_id == auftrag.id)).all()