Python SqlAlchemy烧瓶模型限制保存关系配置

Python SqlAlchemy烧瓶模型限制保存关系配置,python,sqlalchemy,flask,flask-sqlalchemy,Python,Sqlalchemy,Flask,Flask Sqlalchemy,我有两个模型(我使用的是MySQL): 当使用客户id和合作伙伴id保存用户时,如何检查合作伙伴id是否与客户id对应? 是否有任何关系配置禁止这种情况? 我试过: ForeignKeyConstraint(['partner_id'], ['customer.partner_id']) 在用户模型,但它不会停止,当我尝试其他 我想也许我已经明白你的意思了 您可以使用以下代码进行验证或约束: user = user_to_save() customer = session.query(Cust

我有两个模型(我使用的是MySQL):

当使用
客户id
合作伙伴id
保存
用户
时,如何检查
合作伙伴id
是否与
客户id
对应? 是否有任何关系配置禁止这种情况? 我试过:

ForeignKeyConstraint(['partner_id'], ['customer.partner_id'])

在用户模型,但它不会停止,当我尝试其他

我想也许我已经明白你的意思了

您可以使用以下代码进行验证或约束:

user = user_to_save()
customer = session.query(Customer).filter(Customer.id = user.customer_id).one()
if customer.partner_id == user.partner_id:
    save_user()
else:
    do_something()

我有点想问这个问题。多亏了


“保存具有客户id和合作伙伴id的用户时,检查合作伙伴id是否与具有客户id的客户的id相对应。”。可能只是我,但这句话很让人困惑,很难理解你的要求。您可能想在问题中使用一个示例?我想保存一个用户。现在,用户表有一个FK to Customer和Partner。Customer表中有一个FK to Partner。现在,在保存用户时,如果我与FK的客户一起保存;partner_id=1(来自Customer表),用户表中的partner_id必须为1。如果尝试输入其他值,它需要抛出一个错误。我想知道SQLAlchemy本身是否有一些方法来执行此操作?
user = user_to_save()
customer = session.query(Customer).filter(Customer.id = user.customer_id).one()
if customer.partner_id == user.partner_id:
    save_user()
else:
    do_something()