Я пытаюсь реализовать FactoryBoy
с базовой моделью SQLAlchemy
поверх существующей базы данных. Ниже приведено приблизительное приближение к моей настройке и отображена ошибка.
Model.py
base = declarative_base()
class Person(Base):
person_id = Column(Integer, autoincrement=True, primary_key=True)
group_id = Column(ForeignKey(Group.group_id))
class Group(Base)
group_id = Column(Integer, autoincrement=True, primary_key=True)
Factory.py
class PersonFactory(SQLAlchemyModelFactory):
group_id = factory.SubFactory(GroupFactory)
class GroupFactory(SQLAlchemyModelFactory):
pass
test.py
PersonFactory.create()
Ошибка:
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) не может адаптировать тип 'Group' [SQL: 'INSERT INTO Person (group_id) VALUES (% (group_id) s,')] [parameters: {'group_id' :}]
Как правильно настроить модель с declarative_base()
и отношением внешнего ключа, чтобы FactoryBoy
SubFactory
правильно заполнял зависимые модели?