如何在列名稱(和表名稱)中有空格的數據庫上使用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)的同時做到這一點?如果沒有,嘗試實際定義一個表(例如用戶)。我看不出有什麼理由,你想做什麼不應該工作。 –