我正在使用python3中的peewee为现有数据库构建ORM。
现在我在一个表中遇到问题,有一个名为import
的列,我必须将其作为一个类引入。属性。当然,这不是那么简单,因为它是python语言中的关键字。有没有办法以另一种方式更改字段的名称?我无法更改列的名称,因为它会在其他系统上产生大量副作用。
答案 0 :(得分:3)
使用db_column
属性:
class MyModel(Model):
import_ = CharField(db_column='import')
答案 1 :(得分:1)
您可以创建名为import
的类属性。缺点是您始终必须以编程方式访问它:
In [1]: class Test(object):
...: locals()['import'] = 1
...:
In [2]: getattr(Test, 'import')
Out[2]: 1
In [3]: setattr(Test, 'import', 2)
In [4]: getattr(Test, 'import')
Out[4]: 2
您可以使用此类的自定义元类隐藏对getattr
和setattr
的访问,并添加名为@property
的{{1}},它将修改{{1}的值}}。因此,您可以在python代码中使用import_
,import
属性将自动同步。
或者,您只需使用定义自定义import_
的元类,它将以您想要的任何方式处理import
属性。