Ich habe die folgenden drei Klassen:sqlalchemy: 'InstrumentedList' Objekt hat kein Attribut 'Filter'
class Resource:
id = Column(Integer, primary_key=True)
path = Column(Text)
data = Column(Binary)
type = Column(Text)
def set_resource(self, path, data, type):
self.path = path
self.data = data
self.type = type
class EnvironmentResource(Base, Resource):
__tablename__ = 'environment_resources'
parent_id = Column(Integer, ForeignKey('environments.id', ondelete='CASCADE'))
def __init__(self, path, data, type):
self.set_resource(path, data, type)
class Environment(Base):
__tablename__ = 'environments'
id = Column(Integer, primary_key=True)
identifier = Column(Text, unique=True)
name = Column(Text)
description = Column(Text)
_resources = relationship("EnvironmentResource",
cascade="all, delete-orphan",
passive_deletes=True)
_tools = relationship("Tool",
cascade="all, delete-orphan",
passive_deletes=True)
def __init__(self, name, identifier, description):
self.name = name
self.identifier = identifier
self.description = description
def get_resource(self, path):
return self._resources.filter(EnvironmentResource.path==path).first()
Auf get_resource Aufruf, wie ich höre, dass 'InstrumentedList' Objekt kein Attribut 'Filter' hat - I Ich habe die Dokumentation durchgelesen und kann das nicht genau herausfinden. Was fehlt mir, damit ich in der Lage bin, die Ressourcen zu filtern, die einer Umgebung innerhalb meiner Methode 'get_resource' entsprechen?
PS: Ich weiß get_resource wird eine Ausnahme werfen, das ist, was ich es tun möchte.
könnte jemand bitte erklären, in einer Datenbank n00bie was faul = ‚dynamische‘ bedeutet und tut? – appleLover
Ähnlich, wenn Sie das gleiche Problem mit einem 'backref' haben, müssen Sie' backref = 'items' in 'relation' durch etwas wie' backref = db.backref (' items ', lazy =' dynamic ') ersetzen '. –
ohne faul = 'dynamisch', erhalten Sie direkt das Ergebnis auf env.environment_resource. Aber mit Lazy = 'dynamic', gibt es eine - Sie können str (env.environment_resource) ausführen und es gibt Ihnen die SQL-Abfrage, auf die Sie Filter etc. setzen können –