ユーザーが作成されたときに2つのフォルダ=>home_folder
とtrash_folder
というユーザーがあります。各フォルダーには作成者(ユーザー)があります。継承+外部キー:idsがありません
フォルダは結合継承を通じたエントリです(問題ではないかもしれません)。私はこれをやっている
:
new_user = User(name=name)
home_folder = Folder(name="Home",
folder_type=Folder.FolderType.home,
creator=new_user)
trash_folder = Folder(name="Trash",
folder_type=Folder.FolderType.trash,
creator=new_user)
session.add(home_folder)
session.add(trash_folder)
session.add(new_user)
session.commit()
私が正しく私のフォルダを取得:
id folder_type creator_id
1 home 1
2 trash 1
しかし、私のユーザーがOKではありません。ここで
id name home_folder_id trash_folder_id
1 Remi <null> <null>
は私の要旨コードです:
https://gist.github.com/remimarenco/3a9919d58a1b5987cdced1fff62cc606
EDIT:
実際、私の質問はちょっとのようでした... "どのように私は魔法にもっと魔法を加えるのですか?"私のhome_folderと私のtrash_folderは私のユーザには設定されていません。なぜなら私はそれらを特別に設定する場所がないからです。
は、私がリンクする方法があるかどうかを知るために幸せになる
...ユーザーが作成され、フォルダがあまりにも作成しているので、私は、.flush()
か.commit()
後にこれらのaffectationsをしなければならないと思います私たちが作成しているフォルダはユーザのhome_folderに関連付けられていると言っているように、それらをオンザフライで表示します。
ありがとうございます!
こんにちはDavid! 私を助ける時間をとってくれてありがとう。私は、ユーザーにフォルダを追加することで回避しようとしましたが、私はこれらの愛情をする必要はないはずの関係に 'backref'を使用しているためだと思います。 私は念のために、試みたが、私はこの引き起こした: 'sqlalchemy.exc.CircularDependencyError: detected.'循環依存が起こっている何だと思いますか? –