j'ai une valeur qui peut être entier, flottant ou chaîne, et j'ai créé différentes colonnes:un champ avec différents types de données [SQLAlchemy]
#declarative
class MyClass(Base):
#id and other Columns
_value_str = Column(String(100))
_value_int = Column(Integer)
_value_float = Column(Float)
def __init__(self,...,value):
self._value_str = value if isinstance(value,(str,unicode)) else None
self._value_int = value if isinstance(value,int) else None
self._value_float = value if isinstance(value,float) else None
et je voudrais faire quelque chose comme ceci:
>>> value = 'text'
>>> my_class = MyClass(value, ...)
>>> my_class.value
>>> 'text'
>>> session.add(my_class)
>>> session.commit()
#specialy this
>>> result = session.query(Myclass).filter(Myclass.value == 'text').one()
>>> print result.value
>>> 'text'
Peut-être que j'ai un problème de conception, j'accepter une bonne idée
Je suis newbe dans SQLAlchemy
Merci
grille !!, je recherchais pour quelque chose comme ça, mais les documentations sont vraiment bast, merci – sacabuche
regardez, pourrait vous intéresser, ceci est une option ussing MapperExtention http://stackoverflow.com/questions/3020394/sqlalchemy-how-to-map-against-a -read-only-or-calculé- propriété – sacabuche
Notez avec cette réponse que vous ne pouvez pas utiliser les fonctions db, par ex. sum() sur tous les flottants ou ints que vous stockez. Les docs sont en fait assez bons avec SQLAlchemy - ils doivent couvrir beaucoup de terrain - mais oui, pourraient faire avec quelques autres exemples du monde réel. – EoghanM