我正在使用带有 SQLAlchemy 的工厂男孩。
我正在尝试创建 Fact 对象,并且我希望工厂男孩生成作为 Fact 外键的 PatientDim 对象。但是 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)