gpt4 book ai didi

postgresql - 现有数据库结构的 Spyne 模型

转载 作者:行者123 更新时间:2023-11-29 12:58:52 26 4
gpt4 key购买 nike

我在 spyne 中定义模型以在“SOAP11”中生成多个级别时遇到问题。我最初使用的是示例,但我的任务是为已经存在的表生成服务,所以我陷入困境并尝试了解是在 Spyne 属性中还是在 Sqlalchemy 中查找。

准确地说,我将以网站为例并展示我想要达到的目标:

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._%+-]+@[a-z0-9.-]+\.[A-Z]{2,4}')
last_pos = Point(2, index='gist')
permissions = Array(Permission).store_as('table')

--- 生成的 SQL 尝试添加“WHEN user.id = permission.user_id”,但我需要过滤另一个字段 (perm_user_id)

帮我定义类以获得正确的内部标签。实际上它会再深 3 个类。

提前致谢,Yury

最佳答案

你的回答是正确的。作为简单表的替代方案,您可以省略列定义并让 sqlalchemy 的反射引擎解决。

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

将使用来自表列及其类型的尽可能多的信息重建 User 类。

关于postgresql - 现有数据库结构的 Spyne 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35636968/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com