O problema é abordado no tópico de problemas do github - https://github.com /flask-admin/flask-admin/issues/1588
Basicamente, o
flask-admin
O pacote pip está desatualizado, em relação ao sqlalchemy
mais recente pacote de pipas. Nessa área específica, cls, key = identity_key(instance=obj)
sqlalchemy
agora está retornando 3 objetos, mas flask-admin
está esperando apenas 2, daí o erro. O real solução para isso é esperar até que um novo
flask-admin
versão é carregada para pip, até então, você tem algumas opções. - Manualmente entre e edite esse
fields.py
arquivo - Conforme detalhado nesse tópico de problemas, limite
sqlalchemy
para a versão1.2.0b3
. Você pode fazer isso em seu arquivo requirements.txt ou manualmente com uma instalação de atualização do pip,pip install --upgrade sqlalchemy==1.2.0b3
- Como a correção está em
flask-admin
ramificação master do github, instale essa versão doflask-admin
com a localização do pip degit+https://github.com/flask-admin/flask-admin
. Novamente, você faz isso em seu arquivo requirements.txt ou com uma instalação de atualização do pip,pip install --upgrade git+https://github.com/flask-admin/flask-admin
.
Minha preferência pessoal, e o que eu fiz, é a opção 3. Se você examinar o código em si, é uma linha que os mantenedores querem remover, de qualquer maneira, e como eles estão lidando com isso é melhor, e em geral com estes coisas, prefiro seguir em frente (versão mais recente do
flask-admin
) em vez de reter as coisas (rollback sqlalchemy
para uma versão anterior), e certamente melhor do que editar manualmente o código bruto.