I am trying to add a User model view to Flask-Admin. However, I get ImportError: cannot import name db
. Why is this happening and how do I fix it?
Your code has the line from app.models import User
in __init__.py
. The problem is that app.models
has from . import db
. This is a circular import: __init__
tries to import User
, which tries to import db
, which isn't defined until after __init__
tries to import User
. To solve this, move your local app imports below the definitions of all the global extension stuff.
Currently, your code looks something like:
from flask_sqlalchemy import SQLAlchemy
from app.models import User
db = SQLAlchemy()
You need to change it to:
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
from app.models import User