0

私はこのようなテーブルを持っています:

from sqlalchemy import Column, Integer, select
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()

class Blah(Base):
    __tablename__ = 'Blah'
    container_id = Column(Integer, primary_key=True)
    blah_id = Column(Integer, primary_key=True)
    gprop = Column(Integer, index=True, nullable=False)

class GProp(Base):
    __table__ = select([
        Blah.container_id, Blah.gprop
    ]).group_by(
        Blah.container_id, Blah.gprop
    ).alias()

列を取得しているGProp.__table__.primary_keyので、列を主キーの一部にcontainer_idする方法が見つかりません。gpropこれは私のクエリを壊します、SQLAlchemyはGPropコンテナごとに1つだけをロードします。

これまでのところ失敗した修正:既存の列を再定義し、 toを追加しても効果がなく、モンキーパッチが間違ったアサーションによってキャッチされるColumnため、属性の追加は禁止されています。PrimaryKeyConstraint__table_args____table__.primary_key

4

1 に答える 1

2

OK、追加

__mapper_args__ = dict(primary_key=[__table__.c.container_id, __table__.c.gprop])

に反映されていなくても、仕事をし__table__.primary_keyます。

于 2012-10-05T09:25:00.330 に答える