Проверьте, является ли пользователь анонимным для аргумента Flask-Cache `исключением`
Я пытаюсь кэшировать представление, если пользователь не вошел в систему. current_user
работает только внутри вида, поэтому у меня возникают проблемы при передаче его unless=
, Как мне сделать это правильно?
@app.route("/")
@app.cache.cached(timeout=300, unless=current_user.is_authenticated())
def index():
return 'stuff to return'
1 ответ
Решение
Оберните звонок в lambda
, Flask-Cache будет вызывать функцию при выполнении представления, а не один раз, когда представление определено.
@app.cache.cached(timeout=300, unless=lambda: current_user.is_authenticated)
В документах конкретно сказано, что unless
должен быть вызываемым, который будет выполняться каждый раз.