使用“type”动态定义cqlengine模型

inkz8wg9  于 2021-06-15  发布在  Cassandra
关注(0)|答案(1)|浏览(379)

我正在使用datastax cassandra python驱动程序的对象Map器在运行时定义cassandra表列(要求与之类似)。表和列名以及列类型在运行时解析。
我试图在运行时使用“type”定义一个类来定义一个cassandra cqlengine模型。
看起来python驱动程序中定义的模型类向模型中添加了元类
@添加\元类(modelmetclass)
类模型(basemodel):
...
有没有办法用类型来定义模型?我在定义模型类时看到以下错误

from cassandra.cqlengine.models import Model
from cassandra.cqlengine import columns as Columns

attributes_dict = {
    'test_id': Columns.Text(primary_key=True)
    'test_col1': Columns.Text()
}

RunTimeModel = type ('NewModelName', tuple(Model), attributes_dict)

Error:
RunTimeModel = type ('NewModelName', tuple(Model), attributes_dict)
TypeError: 'ModelMetaClass' object is not iterable
cidc1ykv

cidc1ykv1#

我将远离其余部分,但要回答有关错误的问题,我认为您在尝试从非序列参数构造元组时遇到了一个简单的语法错误。相反,您可以使用元组文字表示法:

RunTimeModel = type ('NewModelName', (Model,), attributes_dict)

相关问题