Flask SQLAlchemy: filter_by () принимает 1 позиционный аргумент, но 2 были заданы - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть следующие строки в моем python API, который удаляет функцию, созданную пользователем из postgres дБ по запросу.

@func_app.route("/delete", methods=["POST"])

def delete_func():
    try:
         JSON = request.get_json()

         user_func = function_table.query.filter_by( 
         created_by=token_payload["email"], functionid=JSON["funcId"]
         ).all()
         functionid=JSON["funcId"]
         func_detail = function_table.query.filter_by(functionid).first()


         user = users_table.query.filter_by(email=token_payload["username"]).first()

         if len(user_func) == 0:
             log_metric(g.request_id + " " + "No functions found")
             return make_response(
               jsonify("User does not have any functions. Please try again later."),
              204,
               )
        else:
            function_table.query.filter_by(functionid).delete()
            db.session.commit()


   except Exception as err:
        db.session.rollback()
        log_metric(g.request_id + " " + str(err))
        return make_response(
            jsonify(
                "Unable to process your request at the moment. Please try again later."
             ),
           400,
            )
    finally:
         db.session.close()

Я использовал filter_by аналогично ранее но там я не нашел никакой проблемы. Может кто-нибудь помочь мне понять, что пошло не так? Спасибо!

1 Ответ

0 голосов
/ 22 апреля 2020

вам нужно определить имя столбца со значением в filter_by, оно принимает ** аргументы kwargs, а не * тип ввода args.

вам нужно изменить

func_detail = function_table.query.filter_by(functionid).first() tp

func_detail = function_table.query.filter_by(id = functionid).first() с учетом идентификатора - имя кулмана

для информации Документация sqlalchemy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...