この問題は、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
以前のバージョンに)、そして確かに生のコードを手動で編集するよりも優れています。