在sqlalchemy中如何传递ForeignKey

2024-06-13 09:36:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我用烧瓶创建了一个简单的web应用程序。 现在在模型中,我有一个和另外两个表有关系的bar表。在

    user_shipper_id = Column(Integer, ForeignKey('user_shipper.id', ondelete='CASCADE'), nullable=False)
user_receiver_id = Column(Integer, ForeignKey('user_receiver.id', ondelete='CASCADE'), nullable=False)

现在,user_shipper,我有这个:

^{pr2}$

也在user_receiver表中:

bars = relationship('bar',backref='receiver',lazy='dynamic')

现在我有个问题: 在bar的table init函数中,我有以下内容:

    def __init__(self, origin, destination, tonage, load_date, unload_date, load_address, unload_adress, unload_type, packing, act_type, truck_type, payment_type):
    self.origin = origin
    self.destination = destination
    self.tonage = tonage
    self.load_date = load_date
    self.unload_date = unload_date
    self.load_adress = load_adress
    self.unload_type = unload_type
    self.unload_adress = unload_adress
    self.packing = packing
    self.act_type = act_type
    self.truck_type = truck_type
    self.payment_type = payment_type

现在,当我试图用sqlalchemy将它的show错误插入到table中时,请这样说:

TypeError: __init__() got an unexpected keyword argument 'receiver'

当我试图插入时,如何传递外键?我应该在init函数中定义什么吗?在


Tags: selfiddateinittypebarloadorigin
1条回答
网友
1楼 · 发布于 2024-06-13 09:36:23

您需要在对象初始化时同时传递user_receiver_iduser_shipper_id。在

我还没有测试过这个,但是你可以试着用它作为一个洞察力!在

class UserShipper():
    ...
    bars = relationship('Bar', back_populates='shipper', lazy='dynamic')


class UserReceiver():
    ...
    bars = relationship('Bar', back_populates='receiver', lazy='dynamic')


class Bar():
    ...
    user_shipper_id = Column(Integer, ForeignKey('user_shipper.id', ondelete='CASCADE'), nullable=False)
    shipper = relationship('UserShipper', back_populates='bars')

    user_receiver_id = Column(Integer, ForeignKey('user_receiver.id', ondelete='CASCADE'), nullable=False)
    receiver = relationship('UserReceiver', back_populates='bars')

    def __init(self, ..., user_shipper_id, user_receiver_id):
        ...
        self.user_shipper_id = user_shipper_id
        self.user_receiver_id = user_receiver_id

相关问题 更多 >