SQLAlchemy में, एक hybrid attribute या तो एक property या विधि एक ORM-मैप किया वर्ग के लिए आवेदन किया है,क्या Django ORM SQLAlchemy के हाइब्रिड विशेषता के बराबर है?
class Interval(Base):
__tablename__ = 'interval'
id = Column(Integer, primary_key=True)
start = Column(Integer, nullable=False)
end = Column(Integer, nullable=False)
def __init__(self, start, end):
self.start = start
self.end = end
@hybrid_property
def length(self):
return self.end - self.start
@hybrid_method
def contains(self,point):
return (self.start <= point) & (point < self.end)
@hybrid_method
def intersects(self, other):
return self.contains(other.start) | self.contains(other.end)
इस वर्ग और उदाहरण स्तरों पर अलग व्यवहार के लिए अनुमति देता है, इस प्रकार यह आसान का उपयोग कर SQL कथन का मूल्यांकन करने के बनाने एक ही कोड,
>>> i1 = Interval(5, 10)
>>> i1.length
5
>>> print Session().query(Interval).filter(Interval.length > 10)
SELECT interval.id AS interval_id, interval.start AS interval_start,
interval."end" AS interval_end
FROM interval
WHERE interval."end" - interval.start > :param_1
अब
Django में, अगर मैं एक मॉडल पर एक संपत्ति है,
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
def _get_full_name(self):
"Returns the person's full name."
return '%s %s' % (self.first_name, self.last_name)
full_name = property(_get_full_name)
यह है मेरी understanding कि मैं नहीं निम्नलिखित कर सकते हैं,
Person.objects.filter(full_name="John Cadengo")
वहाँ Django में SQLAlchemy की संकर विशेषता के एक बराबर है? यदि नहीं, तो शायद एक आम कामकाज है?