特定のクラスTaskのオブジェクトを作成し、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()
最初のタスクは最初のコミットに保存されます-これはOKです-そして2番目のタスクは2番目のコミットに保存されます。これは避けたいことです。
私の質問は、タスククラスとホストクラスを宣言して、明示的に要求された場合にのみ特定のインスタンスがDBに保持されるようにするにはどうすればよいですか?「cascade_backrefs」を正しく使用していますか?
ご協力ありがとうございました。