Problemet behandlas i github-problemtråden - https://github.com /flask-admin/flask-admin/issues/1588
I grund och botten är flask-admin pip-paketet är inaktuellt när det gäller den senaste sqlalchemy pip-paket. I det specifika området,
cls, key = identity_key(instance=obj)
sqlalchemy returnerar nu 3 objekt, men flask-admin väntar bara 2, därav felet.
Den riktiga lösningen för detta är att vänta tills en ny flask-admin version laddas upp till pip, tills dess har du några alternativ.
- Manuellt gå in och redigera den
fields.pyfil - Som detaljerat beskrivs i problemtråden, begränsa
sqlalchemytill version1.2.0b3. Du kan göra detta i filen requirement.txt, eller manuellt med en pip-uppgraderingsinstallation,pip install --upgrade sqlalchemy==1.2.0b3 - Eftersom korrigeringen finns i
flask-admins huvudgren i deras github-förråd, installera den versionen avflask-adminmed pip-platsen förgit+https://github.com/flask-admin/flask-admin. Återigen, du gör detta i filen requirement.txt, eller med en pip-uppgraderingsinstallation,pip install --upgrade git+https://github.com/flask-admin/flask-admin.
Min personliga preferens, och vad jag har gjort, är alternativ 3. Om du tittar igenom själva koden, är det en rad som underhållarna vill ta bort, i alla fall, och hur de hanterar det är bättre, och i allmänhet med dessa saker, jag föredrar att gå vidare (senaste versionen av flask-admin ) istället för att hålla tillbaka saker (återställ sqlalchemy till en tidigare version), och definitivt bättre än att manuellt redigera råkoden.