python - 当表有外键时如何在 SQLAlchemy 中添加值
问题描述
我在尝试将值添加到具有一些外键的表时遇到了一些问题。我有以下表格
class Actividad(Base):
__tablename__ = 'actividad'
id = Column(Integer, primary_key=True, autoincrement="auto")
nombre = Column(String, unique=True, nullable= False)
gastos = relationship("Gasto", cascade='all, delete, delete-orphan')
viajeros = relationship('Viajero', secondary = 'actividad_viajero')
def __init__(self, nombre):
self.nombre = nombre
class Viajero(Base):
__tablename__ = 'viajero'
id = Column(Integer,primary_key=True)
nombre = Column(String)
actividades = relationship('Actividad', secondary = 'actividad_viajero')
gastos = relationship('Gasto', cascade='all, delete, delete-orphan')
def __init__(self, nombre):
self.nombre = nombre
class Gasto(Base):
__tablename__ = 'gasto'
id = Column(Integer, primary_key=True)
concepto = Column(String)
valor = Column(Integer)
fecha = Column(Date)
actividad = Column(Integer, ForeignKey('actividad.id'))
viajero = Column(Integer, ForeignKey('viajero.id'))
def __init__(self, concepto, valor, fecha):
self.concepto = concepto
self.valor = valor
self.fecha = fecha
class ActividadViajero(Base):
__tablename__ = 'actividad_viajero'
actividad = Column(Integer, ForeignKey('actividad.id'), primary_key=True)
viajero = Column(Integer, ForeignKey('viajero.id'), primary_key=True)
当我Gasto
使用代码向表中添加一些值时
session.add(Gasto(concepto="consumo",valor=1000,fecha=datetime.strptime('15-12-2020', '%d-%m-%Y'),actividad=1, viajero=1))
session.commit()
我明白了
session.add(Gasto(concepto="consumo",valor=1000,fecha=datetime.strptime('15-12-2020', '%d-%m-%Y'),actividad=1, viajero=1))
TypeError: __init__() got an unexpected keyword argument 'actividad'
但是,如果我使用
session.add(Gasto(concepto="consumo",valor=1000,fecha=datetime.strptime('15-12-2020', '%d-%m-%Y')))
session.commit()
我没有收到错误。我想知道,如何向参数添加值actividades
并viajero
house
使用 SQLAlchemy systaxis?
解决方案
推荐阅读
- r - 有没有办法告诉复制函数制作字符串多长时间?
- kibana - 使用 ELK 堆栈跟踪分布式系统中的调用和使用 Dynatrace 分布式跟踪有什么区别?
- python - 如何将双向 LSTM 状态传递给较早的 LSTM 层?
- python - 尝试计算数据框列子集中的 NaN 时出现 Pandas TypeError
- reactjs - 反应路由器 useHistory 钩子返回未定义
- reactive-programming - 并行化过滤操作
- javascript - 如何使用书签添加图像
- python - 使用 matlibplot 在 python 中绘制阶段
- angular - 如何使用属性绑定将数据传递给 Angular html 组件中的输入
- python - 如何使用 json.dump 将多个数组转储到一个文档中?