Python 3.x Sqlalchemy问题保存多对多对象

Python 3.x Sqlalchemy问题保存多对多对象,python-3.x,database,orm,sqlalchemy,many-to-many,Python 3.x,Database,Orm,Sqlalchemy,Many To Many,我在通过辅助表将Sqlalchemy模型保存到DB时遇到一些问题 这是我的数据库结构: class UserHalls(db.Model): __tablename__ = 'user_halls' user_id = Column(Integer, ForeignKey('live_users.id'), primary_key=True) hall_id = Column(UUID(as_uuid=True), ForeignKey('halls.id'), prim

我在通过辅助表将Sqlalchemy模型保存到DB时遇到一些问题

这是我的数据库结构:

class UserHalls(db.Model):
    __tablename__ = 'user_halls'
    user_id = Column(Integer, ForeignKey('live_users.id'), primary_key=True)
    hall_id = Column(UUID(as_uuid=True), ForeignKey('halls.id'), primary_key=True)

class User(db.Model):
    """Basic user model
    """
    __tablename__ = 'live_users'
    __repr_attrs__ = ['email']

    id = Column(Integer, primary_key=True)

    email = Column(String(255), unique=True, nullable=False)
    password = Column(String(255), nullable=False)
    role = Column(Enum(RolesEnum), nullable=False, default="user")

    is_active = Column(Boolean, default=False)

    halls = relationship("Hall", secondary="user_halls", lazy="joined", back_populates="users")
当我尝试在霍尔表和用户之间创建关系时,同时创建用户时,会出现以下错误:

    sqlalchemy.exc.IntegrityError: (psycopg2.errors.ForeignKeyViolation) insert or update on table "user_halls" violates foreign key constraint "user_halls_user_id_fkey"
E           DETAIL:  Key (user_id)=(1) is not present in table "live_users".
失败的代码示例如下:

@pytest.fixture
def base_user(db, customer, hall, hall_2):

    user = User(
        customer_id=customer.id,
        email="testuser@email.com",
        password="test",
        is_active=True,
    )

    user.halls.append(hall)
    user.halls.append(hall_2)
    # user.save()

    rawdb.session.add(user)
    rawdb.session.commit()

    return user
有没有办法绕过这个问题,或者告诉sqlalchemy先保存用户,然后保存第二个表?我知道我可以在之前添加用户,然后更新它。但我不想这样做。还是我缺少一些配置

多谢大家