0

sqlalchemy で作成されたオブジェクト モデルから整数値またはブール値を取得する方法で、結果なしで検索しました。

私はそれを追加することができ、それは完璧に動作しますが、印刷しようとしたときに得られる整数値またはブール値をすべて取得することはできません。それはオブジェクト名です:

from sqlalchemy import create_engine, MetaData, Table, Column,Integer,String,Boolean,Sequence
from sqlalchemy.orm import mapper, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import json
class Bookmarks(object):
    pass
#----------------------------------------------------------------------
engine = create_engine('postgresql://u:p@localghost/asd', echo=True)
Base = declarative_base()

class Tramo(Base):
    __tablename__ = 'tramos'
    __mapper_args__ = {'column_prefix':'tramos'}

    id = Column(Integer, primary_key=True)
    nombre = Column(String)
    tramo_data = Column(String)
    estado = Column(Boolean,default=True)

    def __init__(self,nombre,tramo_data):
        self.nombre=nombre
        self.tramo_data=tramo_data

    def __repr__(self):
        return "[id:%s][nombre:%s][tramo:%s]" % (getattr(self, 'id'),     self.nombre,self.tramo_data)

Session = sessionmaker(bind=engine)
session = Session()

tabla = Tramo.__table__
metadata = Base.metadata
metadata.create_all(engine)

b=Tramo('tramo1','adadas')

session.add(b)
session.commit()
print b
print b.id

その版画

[id:tramos.id][nombre:tramo1][tramo:adadas]
tramos.id

オブジェクト列がそこにあるように見えますが、プロパティの値を返しません

私も使う

session.refresh(b)

追加後ですが、結果は同じです。

4

1 に答える 1

1

ドキュメントNaming All Columns with a Prefixによると:

...(テーブル)列名に関連するマッピングされた属性名の接頭辞...

クラスでマップされた属性を定義するので、あなたが望むことをするとは思いません。

解決策-1:を削除'column_prefix':'tramos'します__mapper_args__

解決策 2: print b.tramosid ID を出力します。__repr__それに応じて変更する必要があります。

def __repr__(self):
    return "[id:%s][nombre:%s][tramo:%s]" % (getattr(self, 'tramosid'), self.nombre, self.tramo_data)
于 2013-03-19T08:20:23.453 に答える