カラムがTS_TEST_ID
のテーブルがあります。私は、次のプロパティを持つSQLAlchemyのモデルを持っている:SQLAlchemy - プロパティ名ではなく、データベースの列名を使用してモデルの値を設定します。
id = Column(u'TS_TEST_ID', INTEGER(), primary_key=True, nullable=False)
はTS_TEST_ID
が知られているとき、私のモデルクラスのインスタンスでid
を設定する方法はありますか?つまり、私はデータベース内の列の名前しか知りません。何とかそれをid
にマップし、私のモデルのid
プロパティを設定したいと思います。私はちょうどMyModel(**{'TS_TEST_ID':1})
を行うことは働くだろう期待していたが、私は次のエラーを取得する:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 4, in __init__
File "C:\Python26\lib\site-packages\sqlalchemy\orm\state.py", line 111,
in initialize_instance
return manager.events.original_init(*mixed[1:], **kwargs)
File "C:\Python26\lib\site-packages\sqlalchemy\ext\declarative.py", line 1377,
in _declarative_constructor
(k, cls_.__name__))
TypeError: 'TS_TEST_ID' is an invalid keyword argument for MyModel
私はむしろどちらか、私のモデルでは、すべての列にTS_TEST_ID = Column(u'TS_TEST_ID', INTEGER(), primary_key=True, nullable=False)
を定義する必要がない、またはid
を返しTS_TEST_ID
と呼ばれるにも方法でしょうプロパティ。
それは何も確認できないので、野生の推測です: 'yourobj.c.TS_TEST_ID = 15'はそのトリックをしますか? –
'MyModel'のインスタンスは' c'プロパティを持っていませんが、私は 'myobj .__ mapper __。c'を通して同じことにアクセスでき、' myobj .__ mapper __。c.TS_TEST_ID'にアクセスしようとしています'AttributeError'で失敗します。 –