【问题标题】:PyCharm warns about unexpected arguments for SQLAlchemy User modelPyCharm 警告 SQLAlchemy 用户模型的意外参数
【发布时间】:2020-03-15 02:16:39
【问题描述】:

我正在 PyCharm 中使用 Flask-SQLAlchemy。当我尝试通过将关键字参数传递给模型来创建 User 模型的实例时,PyCharm 会突出显示带有“意外参数”警告的参数。当我创建其他模型的实例时,我没有收到此警告。为什么我的 User 模型会出现此错误?

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")

在上面的示例中,username="test" 被突出显示为警告。

【问题讨论】:

标签: python sqlalchemy pycharm flask-login


【解决方案1】:

如果您想不费吹灰之力地解决问题,可以在更新的 python 版本上使用类型提示。

定义类时,只需将类型提示直接放入声明中即可:

class User(db.Model, UserMixin):
    id: db.Column = db.Column(db.Integer, primary_key=True)
    username: db.Column = db.Column(db.String, unique=True, nullable=False)

如果对所有表都执行此操作,结果确实有点冗长,但它也将完全适用于所有 linter,而不仅仅是 PyCharm。

【讨论】:

  • 问题似乎不涉及mypy...这是未说明的要求吗?
  • 我试图暗示的是这与 pycharm 无关。其他类型的系统也有同样的问题。我什至猜想 pycharm 在后台使用 mypy。
【解决方案2】:

This is a bug in PyCharm,不是你的代码。使用 mixin 时,PyCharm 不会将列名识别为参数。您可以通过单击标题旁边的竖起大拇指按钮来表示您对该问题的兴趣。在此之前,除了禁用检查或忽略突出显示之外,您无法解决此问题。

【讨论】:

    猜你喜欢
    • 2011-09-28
    • 2016-02-17
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2020-05-22
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多