我想创建给定类任务的对象,将其中一些存储在使用 SQLAlchemy 的数据库中,并丢弃其他对象。目前这个类是通过以下方式创建的:
Base = declarative_base()
class Task(Base):
__tablename__ = 'tasks'
id = Column(Integer, primary_key=True)
hostID = Column(Integer, ForeignKey('hosts.id'))
name = Column(String)
host = relationship("Host", backref="tasks", cascade_backrefs=False)
def __init__(self, host, name):
self.host = host
self.name = name
class Host(Base):
__tablename__ = 'hosts'
id = Column(Integer, primary_key=True)
hostname = Column(String)
当我表演
newTask1= GridTask(myHost, myName)
Session.add(newTask1)
Session.commit()
newTask2= GridTask(myHost, otherName)
Session.commit()
第一个任务存储在第一次提交上——这没问题——第二个任务存储在第二次提交上,这是我想要避免的。
我的问题是,如何声明 Task 和 Host 类,以便仅在明确要求时才将给定实例保留在 DB 上?我正确地使用了“cascade_backrefs”?
感谢您的帮助。