What is the reason behind this behavior? When I queried back the object, then do an update, None -> None means the field not changed and the DELETE is meaningless. Right?
That is unintentional. Thanks for the report.
I think your use case already works as expected. Can you double check your item_b.save() line? What is item_b and shouldn't it be 'item.save()' ?
I found the problem (and because of that removed the comment, sorry for that).
Here is my code again:
My issue was that the cqlengine registered which columns were changed (only data_b in my case) and then only wrote these to the database.
My workaround for persisting the whole item would be to use:
Indeed, there is no reason item.save() would save data_1 again since its internal state hasn't changed. It's better to use TestItem.create() and/or a new instance like TestItem(uuid=1, data_1=u'data_1', data_2='data_2_deleted').save()