首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将表属性值与sqlalchemy中的其他属性值一起设置

将表属性值与sqlalchemy中的其他属性值一起设置
EN

Stack Overflow用户
提问于 2015-03-11 09:53:18
回答 1查看 245关注 0票数 0

我在一个表中有这个列:

代码语言:javascript
复制
name = Column(String, default='ts-1')

如何将默认值设置为自动递增,以便对象的名称将是'ts-1','ts-2','ts-3'...在创建时。

我试着写了一个构造函数:

代码语言:javascript
复制
def __init__(self):
    self.name = 'ts-' + str(self.id)

但是它总是返回None。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-03-13 07:45:56

我找到了一种使用sqlalchemy orm事件来解决这个问题的方法。事实证明是相当简单的。其思想是在init上编写一个事件侦听器,以便在创建对象时触发该侦听器。

现在我可以访问一个实例的id的值了。

代码语言:javascript
复制
from sqlalchemy import event

@event.listens_for(SomeClass, 'init')
    def change_name(target, args, kwargs):
    session.add(target)
    session.commit()
    target.name = 'sheet#' + str(target.id)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28977267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档