Ich benutze viele Objekte von werkzeug.local.LocalProxy in meiner Flask-App. Sie sollen perfekte Stellvertreter für Objekte sein, sind aber nicht wirklich, da sie nicht auf type() oder instanceof() richtig reagieren.LocalProxy-Objekte in Flask-SQLAlchemy
SQLAlchemy mag sie überhaupt nicht. Wenn ich ein LocalProxy zu einem SQLAlchemy-Eintrag mache, betrachtet SQLAlchemy es als None. Wenn ich einen LocalProxy an einen einfacheren Typ übergebe, sagt es nur, dass es der falsche Typ ist.
Here's an example of Flask-SQLAlchemy having a bad time with LocalProxy.
Wie geht es euch mit diesem Problem? Rufen Sie einfach _get_current_object() viel auf? Es wäre ziemlich cool, wenn SQLAlchemy oder Flask-SQLAlchemy diese LocalProxy-Objekte automatisch besser handhaben könnten, besonders wenn man bedenkt, dass Flask-Login sie verwendet, und so ziemlich jeder benutzt das, oder?
Ich betrachte diese Funktion zu meinem Projekt hinzufügen, damit umzugehen, und in ihm jeder meiner localproxies Einwickeln, bevor sie an sqlalchemy vorbei:
from werkzeug.local import LocalProxy
def real(obj):
if isinstance(obj, LocalProxy):
return obj._get_current_object()
return obj