编辑
例子,
class A(ComplexModel):
Id = Unicode
class B(ComplexModel):
__extends__ = A
Name = Unicode
@rpc(String, _returns=A)
def hello(self, name):
ret = B()
B.Id = '123'
B.Name = name
return ret
您如何处理这种行为,使其不返回 的对象A?
我将如何编写spyne装饰器以正确返回一种以上的类型?例如,如果 _returns 设置为,ZObj则返回一个XAccount(如代码中所示)不会执行任何操作。
我可以编写XAccount对象以使其扩展ZObj并且是有效的返回类型吗?
@rpc(String, _returns=(ZObj, XAccount))
def hello(self, name):
acc = XAccount(
user_name = name.upper(),
first_name = name,
last_name = 'last ' + name
)
return acc
类示例....
class ZObj(ComplexModel):
id = Unicode(pattern='[a-zA-Z0-9]{32}|\d+')
class Account(DeclarativeBase):
__tablename__ = 'account'
id = Column(Integer, primary_key=True)
user_name = Column(String(256))
first_name = Column(String(256))
last_name = Column(String(256))
class XAccount(TableModel):
__table__ = Account.__table__