6

SQLAlchemy で factory boy を使用しています。

私は Fact オブジェクトを作成しようとしています。工場の少年に、Fact への外部キーである PatientDim オブジェクトを生成してもらいたいと思っています。しかし Subfactory はキーを渡さず、代わりにオブジェクト全体をforeignkey フィールドに渡します。

Subfactory を介して PatientDim キーのみを渡すにはどうすればよいですか?

工場.py

class FactFactory(SQLAlchemyModelFactory):
    class Meta:
        model = models.Fact
        sqlalchemy_session = common.Session

    patient_id = factory.SubFactory(PatientDimFactory)

class PatientDimFactory(SQLAlchemyModelFactory):
    class Meta:
        model = models.PatientDim
        sqlalchemy_session = common.Session

モデル.py

class Fact(TimeStampedModel):
    class Meta:
        db_table = 'fact'

    id = Column(Integer, primary_key=True)
    patient_id = Column('patient_id', Integer, ForeignKey(PatientDim.__table__.c.id), nullable=False)
    patient = relationship(PatientDim, foreign_keys='Fact.patient_id' )

Base = declarative_base()
class PatientDim(TimestampMixin, Base):
    __tablename__ = 'patient_dim'

    id = Column('id', Integer, primary_key=True)
4

2 に答える 2