2016-02-25 44 views
1

我在spyne中定義模型以在「SOAP11」中生成多個級別時遇到了問題。 我首先使用了示例,但是我的任務是爲已經存在的表生成服務,所以我陷入困境並試圖理解在Spyne屬性或Sqlalchemy中尋找什麼。針對現有數據庫結構的Spyne模型

準確地說,我會從網站採取例子,說明我正在試圖達成:

class Permission(TableModel): 
__tablename__ = 'permission' 

id = UnsignedInteger32(pk=True) 
application = Unicode(values=('usermgr', 'accountmgr')) 
operation = Unicode(values=('read', 'modify', 'delete')) 
perm_user_id = integer 

最後一個字段是FK用戶表,但它的名字是從USER_ID

不同
class User(TableModel): 
__tablename__ = 'user' 

id = UnsignedInteger32(pk=True) 
user_name = Unicode(32, min_len=4, pattern='[a-z0-9.]+', unique=True) 
full_name = Unicode(64, pattern='\w+(\w+)+') 
email = Unicode(64, pattern=r'[a-z0-9._%+-][email protected][a-z0-9.-]+\.[A-Z]{2,4}') 
last_pos = Point(2, index='gist') 
permissions = Array(Permission).store_as('table') 

--- SQL生成嘗試添加「當user.id = permission.user_id」但我需要另一個領域(perm_user_id)被過濾

幫我定義類來獲得正確的內標籤..實際上它將會深入3個課程。

Thanx提前,尤里·

回答

1

你的答案是正確的。作爲簡單表的替代方案,您可以省略列定義,並讓sqlalchemy的反射引擎找出它。

meta = TableModel.Attributes.sqla_metadata 
meta.reflect() 
class User(TableModel): 
    __table__ = meta.tables['user'] 

將使用盡可能多的信息從表格列及其類型中重構User類。

1

找到它自己,抱歉打擾任何人,

from spyne.model.complex import table 
Permissions= Array(permission).customize(store_as=table(right='perm_user_id')) 
相關問題