मैं निम्नलिखित 3 वर्गों है है:SQLAlchemy: 'InstrumentedList' ऑब्जेक्ट कोई विशेषता 'फिल्टर'
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()
get_resource बुला पर, मुझे बताया गया है कि 'InstrumentedList' ऑब्जेक्ट कोई विशेषता 'फिल्टर' है - मैं दस्तावेज के माध्यम से चला गया है और इसे काफी समझ नहीं सकता है। मुझे क्या याद आ रही है, ताकि मैं अपने 'get_resource' विधि के अंदर किसी पर्यावरण से संबंधित संसाधनों को फ़िल्टर कर सकूं?
पीएस: मुझे पता है get_resource अपवाद फेंक देगा, यही वह है जो मैं करना चाहता हूं।
किसी एक डेटाबेस n00bie क्या आलसी = 'गतिशील' का अर्थ है के बारे में समझाएं और करता है हो सकता है? – appleLover
इसी तरह, यदि आपके पास 'बैकफ्र' के साथ एक ही समस्या है, तो आपको 'backref =' item'' को 'रिलेशनशिप' में 'backref = db.backref (' आइटम्स ', आलसी =' गतिशील ') से कुछ बदलना होगा। '। –
बिना आलसी = 'गतिशील', आप सीधे env.environment_resource पर परिणाम प्राप्त करते हैं। लेकिन आलसी = 'गतिशील' के साथ, यह एक देता है - आप str (env.environment_resource) कर सकते हैं और यह आपको SQL क्वेरी देगी जिस पर आप फ़िल्टर आदि पर काम कर सकते हैं। –