卡桑德拉。默认列值
Cassandra. Default column value
以下示例来自 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
method in UUID column. Which conflicts with base to_database
方法造成的。
UPD2 看起来情况不妙。步骤 **dict(u)
发生错误
解法:
d = dict(u)
del d['column_with_default_value']
Users.create(**d)
您所做的工作超出了您的需要。给定您的 table,这是您插入的方式:
Users.create(username="admin", email="test@test.com", passwd="test")
我在这里验证过:
In [16]: Users.create(username="admin", email="test@test.com", passwd="test")
Out[16]: Users(username='admin', user_id=UUID('183d542d-c469-448d-9d14-d3614f727cef'), email='test@test.com', passwd='test', salt=None)
以下示例来自 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
method in UUID column. Which conflicts with base to_database
方法造成的。
UPD2 看起来情况不妙。步骤 **dict(u)
解法:
d = dict(u)
del d['column_with_default_value']
Users.create(**d)
您所做的工作超出了您的需要。给定您的 table,这是您插入的方式:
Users.create(username="admin", email="test@test.com", passwd="test")
我在这里验证过:
In [16]: Users.create(username="admin", email="test@test.com", passwd="test")
Out[16]: Users(username='admin', user_id=UUID('183d542d-c469-448d-9d14-d3614f727cef'), email='test@test.com', passwd='test', salt=None)