sqlalchemy.exc.ArgumentError: Эта конструкция text() не определяет связанный параметр с именем «current_time»

#python #sql #datetime #sqlalchemy

Вопрос:

У меня есть следующая функция для проверки маркера сброса в таблице reset_codes с помощью пакета sqlalchemy и баз данных(https://pypi.org/project/databases/)

 def check_reset_token(reset_token: str):
    query = "SELECT * FROM reset_codes WHERE is_active=True AND reset_code=:reset_token " 
    "AND expired_in >= :current_time - INTERVAL '60 minutes'"
    return database.fetch_one(query, values={"reset_token": reset_token, "current_time": datetime.utcnow()})
 

я получаю следующую ошибку и не знаю, как ее исправить

 sqlalchemy.exc.ArgumentError: This text() construct doesn't define a bound parameter named 'current_time'
 

вот как expired_in выглядит значение столбца для даты и времени

 |         exired_in             |
| ----------------------------- |
| 2021-06-12 19:19:53.007063    |

 

так что не уверен, что проблема именно в этом :current_time - INTERVAL '60 minutes'

Ответ №1:

исправлено, была опечатка!

 def check_reset_token(reset_token: str):
    query = "SELECT * FROM reset_codes WHERE is_active=True AND reset_code=:reset_token AND expired_in >= :current_time - INTERVAL '60 minutes'"
    return database.fetch_one(query, values={"reset_token": reset_token, "current_time": datetime.utcnow()})
 

sql-запрос был " " и перешел на строку 2…сумасшедший пропустил это и потратил несколько часов, пытаясь понять это