python - Cassandra 。默认列值

标签 python cassandra cqlengine

以下示例来自 python cassandra driver

class Users(Model):
    username = columns.Text(index=True, required=True)
    user_id = columns.UUID(index=True, default=uuid.uuid4)
    email = columns.Text(primary_key=True, required=True)
    passwd = columns.Text()
    salt = columns.Text()

并通过以下方式创建对象:

u = Users()
u.username = 'admin'
u.email = 'test@test.com'
u.password = u'test'   #This is property with setter
Users.create(**dict(u))

在这种情况下,我们得到 user_id:None 而不是 user_id:uuid.uuid4 和相应的错误。

如何让 default = uuid.uuid4 更轻松地工作?

UPD 我猜,这是由覆盖 to_database 引起的UUID 列中的方法。与基数冲突 to_database方法。

UPD2 看起来情况很糟糕。步骤 **dict(u)

发生错误

解决方案:

d = dict(u) 
del d['column_with_default_value']
Users.create(**d)

最佳答案

您所做的工作超出了您的需要。给定您的表格,这就是您插入的方式:

Users.create(用户名=“admin”,电子邮件=“test@test.com”,密码=“test”)

我已经在这里验证了这一点:

在[16]中:Users.create(用户名=“admin”,电子邮件=“test@test.com”,passwd=“test”) 输出[16]:用户(用户名='admin',user_id=UUID('183d542d-c469-448d-9d14-d3614f727cef'),电子邮件='test@test.com',passwd='test',盐=无)

关于python - Cassandra 。默认列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35870127/

相关文章:

python - 抓取亚马逊交易页面不返回 html 代码 - python

sql - 文档存储的最佳用途是什么?

python - Cassandra 2 - CQLEngine : Store Images error

python - 来自大型掩码数组的 Numpy 平均值

python - apache_beam.transforms.util.Reshuffle() 不适用于 GCP 数据流

python - Fab 未找到主机 key

Cassandra 数据克隆到另一个 cassandra 数据库(不同服务器)

hadoop - M/R 程序中的几个 map 和 reduce 函数

python - DataStax Enterprise 4.6.1/C* 使用 cqlengine 0.21.0 在 Python 中分页

python - 使用 CQLEngine 更新 UDT 集