Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLAlchemy-查询现有项的关联表_Sql_Database_Flask_Sqlalchemy_Flask Sqlalchemy - Fatal编程技术网

SQLAlchemy-查询现有项的关联表

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

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.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()