分配前引用了变量“ product_id”

时间:2019-11-08 00:05:43

标签: python sql variables flask-sqlalchemy

制作我的项目的收藏夹的路线,用于在收藏夹时不重复,并检查它是否已被收藏#h,我也很难删除它

favoritar = request.form.getlist("produto")

print('produto', favoritar)
print('REQUEST FORM', request.form) 
favorito = Favoritos.query.filter_by(usuarios_id=current_user.id).all()

for id_prod in favoritar:
        if len(favorito) == 0: # verifica quantos favoritos está marcado no banco
            id_cliente = current_user.id
            novo_favorito = Favoritos(produtos_id=id_produto,usuarios_id=id_cliente)
            print('p',id_produto)
            print('c',id_cliente)
            db.session.add(novo_favorito)
        else:
            for fav in favorito:
                print('fav',fav)
                if len(fav) == 1:
                    pass



            print('primeiro',id_prod)
        for id_produto in favorito:
            print('segundo',id_produto.produtos_id)
            if id_prod != id_produto.produtos_id:
                id_cliente = current_user.id
                novo_favorito = Favoritos(produtos_id=id_produto,usuarios_id=id_cliente)
                print('p',id_produto)
                print('c',id_cliente)
                db.session.add(novo_favorito)

2 个答案:

答案 0 :(得分:0)

我将假设id_produto是问题标题中定义为product_id的变量。

请,您可以编辑问题以确保使您描述的错误与共享代码中定义的变量一致吗?

无论如何,如果您检查代码中的下一行,则假设id_produtoproduct_id

novo_favorito = Favoritos(produtos_id=id_produto, usuarios_id=id_cliente)

如您所见,您正在分配productos_id=id_produto,但是id_produto之前尚未声明。因此,这就是您得到的错误。

答案 1 :(得分:0)

  

我正在使用python,上面的代码来自我的发布路线,旨在处理购物时间表中的最爱。路由变量是我在代码中已经提到的所有变量。作为一名学生,我和老师一起提出了一种将书签保存到数据库的新方法,它下面是(抱歉,我是该领域的新手):

@app.route('/favoritar2', methods=['POST'])
def post_fav():
favoritar = request.form.getlist("produto")
try:    
    favorito = Favoritos.query.filter_by(usuarios_id=current_user.id).all()
    print('Favoritar', favoritar)
    print('REQUEST FORM', request.form)
    print('Favorito',favorito)

    for i in favoritar:
        fav2 = int(favoritar[i])
        print('FAV2',fav2)
        print('I-FAVORITAR',i)
        print('TYPE-FAVORITAR',type(i))
        print('FAVORITAR',favoritar)
        if i not in favorito:
            print('TYPE-FAVORITO',type(i))
            print('I-FAVORITO',i)
            print('FAVORITO',favorito)
            novo_favorito = Favoritos(produtos_id=i,usuarios_id=current_user.id)
            print("novo favorito", novo_favorito)
            db.session.add(novo_favorito)
            novo_favorito = ""
        else:
            print("Esse ja existe ",i)
    db.session.commit()
db.session.commit()

    flash('Favoritado!','success')
    print('ok')
except Exception as e:
    flash('Erro'+str(e),'danger')
    print('Erro '+str(e))

return redirect('/favoritar')