フラスコ内でFlaskとSQLAlchemyを使い始めたばかりです。フラスコ関係モデル複数存在する場合は取得または作成
ここでは例を使用して多対多の関係がありますhttp://docs.sqlalchemy.org/en/latest/orm/tutorial.html キーワードとタグについての部分にスクロールすると、これは私が取り組んでいることです。 これまで私の投稿に関連する新しいキーワードを挿入することができ、私は追加を使用しています。それは私が知っている間違っている。だから、次にユニークではないキーワードがブログ投稿に現れると、キーワードとの競合についてのエラーが発生します(キーワードは一意であると考えられます)。
私は正しい方法が何か他のものであることを知っています。何がわからない。私は get_or_create(キーワード)の例を見てきましたが、基本的にはキーワードでフィルタリングし、見つからなければ追加します。しかし、データサイズが大きくなるにつれてこれも間違っていると私は信じています。 (1回の挿入ですべてのセーブにいくつかの呼び出しがあります)。私はSQLAlchemyが自動的に複数の挿入を行う方法が大好きです。私はそれを残しておきたいが、この重複するキーの問題を避ける。
編集:SQLAlchemy docsが解決策を見つけましたが、エラーが発生しましたが説明があります。私は答えを加えました。
btw私は関連モデルにappendを使用しています。このような。 post.keywords.append(Keyword( "foo"))次にcommitを呼び出します。 – Vangel
モデルを投稿して実際のコードを追加できますか? – plaes
投稿を更新しました。私は明らかに何もしませんし、何もしないマージ()のようなものを試しました。 2ページ目の読み込みは常にエラーを引き起こします。私はGameテーブルに存在しないゲーム(タグ)とusergames(存在しない場合)だけを追加したいと思います。 Ofcourse私はユーザーのゲームではなく、ゲームであるゲームを持っていない。その部分は問題ありません。 – Vangel