私はFile
クラスを持っています:
class File(DeclarativeBase):
__tablename__ = 'files'
id = Column(Integer, primary_key=True)
name = Column(String)
mime_type = Column(String)
data = Column(LargeBinary)
これは、アプリケーションに添付ファイルを保存するために使用します。私もNote
クラスを持っています:
class Note(DeclarativeBase):
__tablename__ = 'notes'
id = Column(Integer, primary_key=True)
note = Column(String)
fid = Column(Integer, ForeignKey('files.id'))
file = relationship('File', uselist=False, cascade="all, delete-orphan")
ユーザーがファイルを添付していない場合はどこにfid
なりますか。他のクラスに加えて、添付ファイルを処理するための列も使用しNULL
ます。Note
fid
しかし、どうすればノートの作成をよりエレガントにできるのだろうかと思っています。具体的には、次のようなことを実行してNote(note=note_text,file=File(...))
、SQLAlchemyに新しいエントリの挿入を処理してもらいたいと思いfiles
ます。同様に、既存のについては、に孤立したエントリがない状態で、すべてNote
を実行できるようにしたい、n.file = File(...)
またはn.file = None
すべてを機能させたいと考えていますfiles
。