python - Pycharm 警告 SqlAlchemy 模型中出现意外类型

标签 python sqlalchemy pycharm

在 SqlAlchemy 模型中,我收到来自 pycharm 的警告,指出列具有意外类型。

产生警告的简化代码如下:

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String

Base = declarative_base()

class Peptide(Base):
    __tablename__ = 'peptides'

    sequence = Column(String, primary_key=True)
    scan = Column(Integer)

    def __init__(self, scan, sequence):
        self.scan = scan
        self.sequence = sequence

    def __repr__(self):
        return '<Peptide "%s" Scan %i>' % (self.sequence, self.scan)

警告是在 __repr__ 方法中针对 self.scan 给出的。 如果我将格式字符串更改为:

  return '<Peptide "%s" Scan %s>' % (self.sequence, self.scan)

警告消失。但实际上self.scan在模型中已经被定义为一个整数,而不是一个字符串。令人惊讶的是,以下字符串不会产生任何警告:

  return '<Scan %i>' % self.scan

这是 pycharm 检查器 react 过度还是与 SqlAlchemy 类型有关?

最佳答案

目前 PyCharm 不了解 SQLAlchemy ORM 约定,因此通常它不知道模型字段的真实类型。如果您想在 PyCharm 中获得对 SQLAlchemy 的特殊支持,请随时为问题投票 PY-4186在 PyCharm 问题跟踪器中。

更新:PY-4536 已于 2013 年修复。正如下面的评论所述,如果您使用 Mixins,仍然存在问题,请参阅 PY-12002 .

关于python - Pycharm 警告 SqlAlchemy 模型中出现意外类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6574446/

相关文章:

python - 如何在 tkinter 文本小部件中为文本的当前长度制作许多标签

python - 读取大文件并制作字典

python - cursor.execute(statement, parameters) sqlalchemy.exc.OperationalError : (sqlite3. OperationalError) 没有这样的表

python - 单个表上的 SQLAlchemy 多对多关系错误 : NoReferencedTableError

django - 使用pycharm在docker中运行django

python - 使用 PyCharm 调试扭曲的应用程序

python - 将值附加到 numpy 数组中的每个数组

python - 使用集合和数据框计算唯一单词

python - SQLAlchemy 映射以列出相关对象

django - 使用 pycharm 调试器调试在 docker 镜像中运行的 django 应用程序