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.py
fil - Som detaljerat beskrivs i problemtråden, begränsa
sqlalchemy
till 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-admin
s huvudgren i deras github-förråd, installera den versionen avflask-admin
med 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.