Używam wielu obiektów werkzeug.local.LocalProxy w mojej aplikacji Flask. Mają być doskonałymi stand-inami dla obiektów, ale tak naprawdę nie są, ponieważ nie odpowiadają poprawnie na type() lub instanceof().Obiekty LocalProxy w Flask-SQLAlchemy
SQLAlchemy w ogóle ich nie lubi. Jeśli zrobię LocalProxy do rekordu SQLAlchemy, SQLAlchemy uważa go za Brak. Jeśli przekazuję go LocalProxy do prostszego typu, po prostu mówi, że jest to niewłaściwy typ.
Here's an example of Flask-SQLAlchemy having a bad time with LocalProxy.
Jak sobie z tym radzicie? Po prostu często dzwonisz do _get_current_object()? Byłoby całkiem fajnie, gdyby SQLAlchemy lub Flask-SQLAlchemy mogły z większą łatwością obsłużyć te obiekty LocalProxy, szczególnie biorąc pod uwagę, że Flask-Login używa ich i prawie każdy z nich to używa, prawda?
jestem rozważa dodanie tej funkcji do mojego projektu, aby sobie z tym poradzić, a owijanie żadnego z moich localproxies w nim przed przekazaniem ich do sqlalchemy:
from werkzeug.local import LocalProxy
def real(obj):
if isinstance(obj, LocalProxy):
return obj._get_current_object()
return obj