[Sqlalchemy-tickets] Issue #3115: mapper has_property method to do return True when hybrid_property
Brought to you by:
zzzeek
|
From: delegans <iss...@bi...> - 2014-07-07 10:28:29
|
New issue 3115: mapper has_property method to do return True when hybrid_property https://bitbucket.org/zzzeek/sqlalchemy/issue/3115/mapper-has_property-method-to-do-return delegans: When I try to get property from mapper by name I can't do it when hybrid_property name specified. ``` #!python import datetime from sqlalchemy import create_engine, MetaData from sqlalchemy import Column, String, DateTime, Integer from sqlalchemy.ext.declarative import declarative_base, declared_attr from sqlalchemy.ext.hybrid import hybrid_property from sqlalchemy.orm import sessionmaker metadata = MetaData() Base = declarative_base(metadata=metadata) class Duration(Base): __tablename__ = "duration" pk = Column(Integer, primary_key=True) name = Column(String, nullable=False) @hybrid_property def duration(obj): return obj.name engine = create_engine('sqlite:///:memory:', echo=True) metadata.create_all(engine) Session = sessionmaker(bind=engine) session = Session() duration = Duration(name="Test") session.add(duration) session.commit() print duration.__mapper__.has_property('duration') # Returns False, needs True ``` As you can see the has_property('duration') does not see the hybrid_property duration and returns False instead True. Is it a bug? Source: http://stackoverflow.com/questions/24579185/sqlalchemy-how-mapper-has-property-method-to-do-return-true-when-hybrid-propert |