I'm working with Flask-SQLAlchemy in PyCharm. When I try to create instances of my User
model by passing keyword arguments to the model, PyCharm highlights the arguments with an "Unexpected argument(s)" warning. When I create instances of other models, I don't get this warning. Why am I getting this error for my User
model?
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String, unique=True, nullable=False)
new_user = User(username="test")
In the above example username="test"
is highlighted as a warning.
This is a bug in PyCharm, not your code. PyCharm doesn't recognize column names as arguments when using mixins. You can show your interest in the issue by clicking the thumbs up button next to its title. Until then, there's nothing you can do to fix the issue besides disabling the inspection or ignoring the highlighting.
Another way to solve this annoying issue is to add a comment # type: ignore
to the line, which removes Pycharm's type checking on that line and looks a lot nicer:
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String, unique=True, nullable=False)
new_user = User(username="test") # type: ignore
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With