Python SQLAlchemy JSON列自定义属性
在SQLAlchemy中,JSON列可以包含任意数据结构。为了更容易地访问该列的某些深层元素,我想在该列上创建自定义属性。一个简单的例子可以是如下列:Python SQLAlchemy JSON列自定义属性,python,sqlalchemy,Python,Sqlalchemy,在SQLAlchemy中,JSON列可以包含任意数据结构。为了更容易地访问该列的某些深层元素,我想在该列上创建自定义属性。一个简单的例子可以是如下列: 类模型(db.Model): language=db.Column(postgresql.JSON(),null=False, 默认值={“nl”:“en”:“}) 然后我想在language属性上有一个属性,这样我们可以键入entity.language.en和entity.language.nl。我已尝试创建自定义列类型: 类Transla
类模型(db.Model):
language=db.Column(postgresql.JSON(),null=False,
默认值={“nl”:“en”:“})
然后我想在language
属性上有一个属性,这样我们可以键入entity.language.en
和entity.language.nl
。我已尝试创建自定义列类型:
类TranslatedColumn(db.Column):
定义初始化(self,*args,**kwargs):
super(),
默认值={“nl”:“en”:“})
@杂化性
def en(自我):
返回自我[“en”]。astext
@杂化性
def nl(自我):
返回自我[“nl”]。astext
它在查询列时起作用:db.session.query(Model.filter)(Model.language.en==“somestr”)…
,但是当我尝试访问实体上的列时,entity.language=={“nl”:“en”:“}
,这是一个dict
有什么方法可以基于SQLAlchemy的JSON列创建这样的结构吗?使用来自SQLAlchemy的
导入JSON
,而不是postgresql.JSON()
我想您可能会使用类型装饰器
: