如何在列名称(和表名称)中有空格的数据库上使用sqlalchemy?sqlalchemy - 反映带空格的表和列
db.auth_stuff.filter("db.auth_stuff.first name"=='Joe')
显然不能工作。我不想在做反射时手动定义所有内容,而是希望在从db中读取现有表名和在我的模型中使用lambda x: x.replace(' ','_')
之间。 (创建一个通用函数来重命名所有不适用于python的表名(如保留字等)可能也很有用)。
有没有一种简单/干净的方法来做到这一点?
我想我需要定义我自己的映射类?
https://groups.google.com/forum/#!msg/sqlalchemy/pE1ZfBlq56w/ErPcn1YYSJgJ
或者使用某种__mapper_args__
参数 - http://docs.sqlalchemy.org/en/rel_0_8/orm/mapper_config.html#naming-all-columns-with-a-prefix
理想:
class NewBase(Base):
__mapper_args__ = {
'column_rename_function' : lambda x: x.replace(' ','_')
}
class User(NewBase):
__table__ = "user table"
}
当您使用声明设置时,我不认为这应该是一个问题,因为您可以分别指定属性('auth_stuff')和列名称('auth stuff')。与表格相同。这让我想知道:你是在尝试使用[内省](http://docs.sqlalchemy.org/en/rel_0_8/core/reflection.html)的同时做到这一点?如果没有,尝试实际定义一个表(例如用户)。我看不出有什么理由,你想做什么不应该工作。 –