当前位置: 首页 > 知识库问答 >
问题:

SQLAlchemy“AttributeError:'str'对象没有属性'c'”

林修雅
2023-03-14
class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    first_name = Column(Text)
    last_name = Column(Text, nullable=True)

class Permission(Base):
    __tablename__ = 'permissions'

    id = Column(Integer, primary_key=True)
    title = Column(String(64))
    allow_anonymous = Column(Boolean)

class UserPermission(Base):
    __table__ = 'userPermissions'

    id = Column(Integer, primary_key=True)
    user_id = Column(Integer, ForeignKey('users.id'))
    permission_id = Column(Integer, ForeignKey('permissions.id'))
    value = Column(Boolean)
/usr/bin/python3.6 /path/project/out.py
Traceback (most recent call last):
  File "/path/project/out.py", line 1, in <module>
    from components.database import setup
  File "/path/project/components/database/__init__.py", line 41, in <module>
    class UserPermission(Base):
  File "/home/user/.local/lib/python3.6/site-packages/sqlalchemy/ext/declarative/api.py", line 65, in __init__
    _as_declarative(cls, classname, cls.__dict__)
  File "/home/user/.local/lib/python3.6/site-packages/sqlalchemy/ext/declarative/base.py", line 116, in _as_declarative
    _MapperConfig.setup_mapping(cls, classname, dict_)
  File "/home/user/.local/lib/python3.6/site-packages/sqlalchemy/ext/declarative/base.py", line 144, in setup_mapping
    cfg_cls(cls_, classname, dict_)
  File "/home/user/.local/lib/python3.6/site-packages/sqlalchemy/ext/declarative/base.py", line 172, in __init__
    self._setup_table()
  File "/home/user/.local/lib/python3.6/site-packages/sqlalchemy/ext/declarative/base.py", line 481, in _setup_table
    if not table.c.contains_column(c):
AttributeError: 'str' object has no attribute 'c'

问题出在哪里?

共有1个答案

禄奇希
2023-03-14

UserPermission类中,使用了错误的dunder属性:

__table__ = 'userPermissions'

应该是:

__tablename__ = 'userPermissions'

Sqlalchemy正试图将字符串“用户权限”视为对象。

 类似资料:
  • 问题内容: 我正在尝试使用SQLAlchemy + Python将一个项目添加到我的数据库中,但始终出现错误。 我的database_setup.py: 在将sqlalchemy导入到终端后,我定义了一个要插入的项目: 并绘制一个会话以添加和提交: 当我提交时,我不断收到此错误: 我在我的公司表中添加了一个“ Jawbone”对象,我理解我的“ JawboneUP3”应该与之相关。该对象是通过我通

  • 问题内容: 为什么被认为是物体?返回列表中的第一项,但我不能追加到列表中的第一项。谢谢。 Edit01: @pyfunc:谢谢您的解释;现在我明白了。 我需要一个清单清单。因此“来自表单”应为列表。我做到了(如果这不是正确的方法,请更正): 问题答案: myList [1]是myList的元素,其类型是字符串。 myList [1]是str,您不能附加它。myList是一个列表,您应该已经附加了它

  • 问题内容: 有点困惑,因为我很肯定我以前曾经做过这项工作。 我创建了以下方法… 但是当我在导入的CSV文件上运行它时,会产生此错误: 尽管我可以看到这是文档中的一个属性: https://pandas.pydata.org/pandas- docs/stable/generation/pandas.Series.str.isnumeric.html?highlight=isnumeric#pand

  • Selenium/Python自动化新手。我在自动注册表单时被阻止。下拉列表是必需的元素,但我收到以下错误。。。 AttributeError:“str”对象没有属性“tag_name” 我把我的代码贴在下面,但是在网上找不到任何答案来解释为什么会这样。非常感谢任何/所有的帮助。 错误来自sel=Select('teamElement')行。

  • 我和cloud composer一起策划了两个数据流工作,它已经工作了一个月了。突然,这两个作业停止工作,并出现以下错误消息: 在作业中,我用存储客户端从google cloud storage下载一个文件。我以为这是因为一些依赖问题。在composer环境中,我安装了google-cloud-storage,但没有指定版本。我尝试指定包的不同版本,但似乎没有任何工作。 谢了!

  • 我遵循项目中给出的所有指示 代码是main.py