2015-05-19 1 views
1

Работа с моделями cqlengine Я обнаружил неожиданное поведение с параметрами default_values ​​и uuid.значения значений по умолчанию cqlengine и uuid

Я использую python 3.4 и cqlengine из cassandra-драйвера 2.5.0.

с помощью следующего кода: выход

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) 

прибудет:

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?

благодарит

ответ

4

Вы указываете значение для default вместо функции. Изменение его просто на default=uuid.uuid4 приведет к вызову функции uuid4, вызывающей разные значения.

+0

Право, теперь выглядит просто :) uuid4() - это значение, которое может быть вызвано. благодаря – trilopin

 Смежные вопросы

  • Нет связанных вопросов^_^