この問題は、githubの問題スレッドで説明されています- https://github.com / flask-admin / flask-admin / issues / 1588
基本的に、flask-admin 最新のsqlalchemyに関して、pipパッケージは古くなっています pipパッケージ。その特定の領域では、
cls, key = identity_key(instance=obj)
sqlalchemy 現在、3つのオブジェクトを返していますが、flask-admin は2のみを期待しているため、エラーが発生します。
本物 このための解決策は、新しいflask-adminまで待つことです。 バージョンはpipにアップロードされますが、それまではいくつかのオプションがあります。
- 手動 入って、その
fields.pyを編集します ファイル - その問題のスレッドで詳しく説明されているように、
sqlalchemyを制限します バージョン1.2.0b3へ 。これは、requirements.txtファイルで行うか、pip upgrade install、pip install --upgrade sqlalchemy==1.2.0b3を使用して手動で行うことができます。 - 修正は
flask-adminにあるため のgithubリポジトリのマスターブランチに、そのバージョンのflask-adminをインストールしますgit+https://github.com/flask-admin/flask-adminのpipの場所 。繰り返しになりますが、これはrequirements.txtファイルで行うか、pip upgrade installを使用して、pip install --upgrade git+https://github.com/flask-admin/flask-admin。
私の個人的な好み、そして私がやったことはオプション3です。コード自体を見ると、とにかく、それはメンテナが削除したい行であり、彼らがそれをどのように扱っているか、そして一般的にこれらで物事、私は前進することを好みます(flask-adminの最新バージョン )物事を抑えるのではなく(ロールバックsqlalchemy 以前のバージョンに)、そして確かに生のコードを手動で編集するよりも優れています。