Het probleem wordt behandeld in de github issues thread - https://github.com /flask-admin/flask-admin/issues/1588
Kortom, de flask-admin
pip-pakket is verouderd, met betrekking tot de nieuwste sqlalchemy
pip pakket. In dat specifieke gebied,
cls, key = identity_key(instance=obj)
sqlalchemy
retourneert nu 3 objecten, maar flask-admin
verwacht er maar 2, vandaar de fout.
De echte oplossing hiervoor is te wachten tot een nieuwe flask-admin
versie is geüpload naar pip, tot die tijd heb je een paar opties.
- Handmatig ga naar binnen en bewerk die
fields.py
bestand - Zoals beschreven in die problementhread, beperk
sqlalchemy
naar versie1.2.0b3
. U kunt dit doen in uw requirements.txt-bestand, of handmatig met een pip upgrade install,pip install --upgrade sqlalchemy==1.2.0b3
- Omdat de oplossing zich in
flask-admin
bevindt 's master branch in hun github-repository, installeer die versie vanflask-admin
met de pip-locatie vangit+https://github.com/flask-admin/flask-admin
. Nogmaals, je doet dit in je requirements.txt-bestand, of met een pip upgrade install,pip install --upgrade git+https://github.com/flask-admin/flask-admin
.
Mijn persoonlijke voorkeur, en wat ik heb gedaan, is optie 3. Als je door de code zelf kijkt, is het een regel die de beheerders willen verwijderen, hoe dan ook, en hoe ze ermee omgaan is beter, en in het algemeen met deze dingen, ik ga liever vooruit (laatste versie van flask-admin
) in plaats van dingen tegen te houden (rollback sqlalchemy
naar een eerdere versie), en zeker beter dan het handmatig bewerken van de onbewerkte code.