Sto utilizzando molti oggetti werkzeug.local.LocalProxy nell'app Flask. Si suppone che siano degli stand-in perfetti per gli oggetti, ma in realtà non lo sono, dal momento che non rispondono correttamente a type() o instanceof().Oggetti LocalProxy in Flask-SQLAlchemy
SQLAlchemy non gli piace affatto. Se creo un LocalProxy su un record SQLAlchemy, SQLAlchemy lo considera come Nessuno. Se lo passo a un LocalProxy ad un tipo più semplice, si dice semplicemente che è il tipo sbagliato.
Here's an example of Flask-SQLAlchemy having a bad time with LocalProxy.
Come affrontate questo problema con i ragazzi? Basta chiamare _get_current_object() molto? Sarebbe bello se SQLAlchemy o Flask-SQLAlchemy potessero gestire automaticamente questi oggetti LocalProxy in modo più agevole, specialmente considerando che Flask-Login li usa, e praticamente tutti li usano, giusto?
Sto considerando di aggiungere questa funzione per il mio progetto a che fare con esso, e avvolgendo nessuno dei miei localproxies in esso prima di passarli a SQLAlchemy:
from werkzeug.local import LocalProxy
def real(obj):
if isinstance(obj, LocalProxy):
return obj._get_current_object()
return obj