2017-03-28 25 views
0

我有一个问题,加载一个项目并将其保存回cassandra之间的删除会导致没有更新的列被删除。卡桑德拉问题与过滤器()和保存()之间删除

class TestItem(Model): 
    uuid = columns.Integer(primary_key=True) 
    data_1 = columns.Text() 
    data_2 = columns.Text() 

TestItem.create(uuid=1, data_1='data_1', data_2='data_2').save() 

item = TestItem.filter(uuid=1).first() 
TestItem.objects(uuid=1).delete() 
item.data_2 = 'data_2_deleted' 

item_b.save() 
# stdout: 
# TestItem(uuid=1, data_1=u'data_1', data_2='data_2_deleted') 

TestItem.filter(uuid=1).first() 
# stdout: 
# TestItem(uuid=1, data_1=None, data_2=u'data_2_deleted') 

我期望data_1仍然存在。

这是预期的行为?我能否以某种方式更改我的代码,以便完全删除项目或使用以前查询的所有值保存项目。

回答

0

问题是cassandra驱动程序只写回实际更改的行。

在我的使用情况下,我想写的所有行,改变或没有,所以我用:

TestItem.create(**dict(item_b)).save()