首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cqlengine模型默认值和uuid

cqlengine模型默认值和uuid
EN

Stack Overflow用户
提问于 2015-05-19 18:14:30
回答 1查看 339关注 0票数 1

在使用cqlengine模型时,我发现了default_values和uuid的意外行为。

我使用python3.4和来自Cassandra-Driver2.5.0的cqlengine。

有以下代码:

代码语言:javascript
复制
from cassandra.cqlengine import columns, connection, management
from cassandra.cqlengine.models import Model

import uuid

class Person(Model):
    id = columns.UUID(primary_key=True, default=uuid.uuid4())
    first_name  = columns.Text()
    last_name = columns.Text()

connection.setup(['127.0.0.1'], 'test_keyspace', 1, protocol_version=2)
management.sync_table(Person)

print("default value")
for i in range(10):
    p = Person().save()
    print(p.id)


print("\nparameter value")
for i in range(10):
    p = Person(id=uuid.uuid4()).save()
    print(p.id)

获得输出:

代码语言:javascript
复制
default value
703ddd0a-5a36-4c07-975b-638a9f7d2404
703ddd0a-5a36-4c07-975b-638a9f7d2404
703ddd0a-5a36-4c07-975b-638a9f7d2404
703ddd0a-5a36-4c07-975b-638a9f7d2404
703ddd0a-5a36-4c07-975b-638a9f7d2404
703ddd0a-5a36-4c07-975b-638a9f7d2404
703ddd0a-5a36-4c07-975b-638a9f7d2404
703ddd0a-5a36-4c07-975b-638a9f7d2404
703ddd0a-5a36-4c07-975b-638a9f7d2404
703ddd0a-5a36-4c07-975b-638a9f7d2404

parameter value
1366251d-36fc-480e-abae-bbbd957035af
e0f6936d-08d9-4308-bb68-79ba8d8db162
2cbcf896-96ec-4d29-993f-84336a13a3b5
2b0c765e-6cd8-4da0-86e5-14f49f5fa8fc
42ea40ed-8b12-4da3-aea6-ca7192d35290
13db1568-addf-4c60-be00-7c538c366245
b889c159-cf21-4193-99df-f2fe0275bce9
cd3bcf63-cf4b-4729-a1fb-bde413f9273d
99692a23-42a1-40d3-a41f-d5fb77bff691
008f496a-4c74-4cd4-9675-3f6a6e3a393c

为什么模型中的默认参数总是产生相同的uuid?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-19 20:53:31

您正在为default指定一个值,而不是一个函数。将其更改为简单的default=uuid.uuid4将导致每次调用uuid4函数,为您提供不同的值。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30333122

复制
相关文章

相似问题

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