如何从GAE NDB属性中删除值(键入BlobKeyProperty)

时间:2014-02-24 13:56:46

标签: google-app-engine python-2.7 app-engine-ndb

这可能是最愚蠢的问题,我为此道歉,但我很困惑

我有以下实体:

class Profile(ndb.Model):  
    name = ndb.StringProperty()  
    identifier = ndb.StringProperty()  
    pic = ndb.BlobKeyProperty() # stores the key to the profile picture blob 

我想删除上述实体的“pic”属性值,以便它看起来像“pic”从未被赋予任何值一样新鲜。我不打算删除整个实体。以下方法是否正确:

qry = Profile.query(Profile.identifier==identifier) 
result_record_list = qry.fetch()  
if result_record_list:  
    result_record_list[0].pic.delete()  # or result_record_list[0].pic = none # or undefined or null 

我将分别删除此blob键引用的实际blob

2 个答案:

答案 0 :(得分:3)

为其分配None并将其放回数据存储区。

result_record_list[0].pic = None
result_record_list[0].put()

答案 1 :(得分:1)

数据存储区是OO无模式数据库。因此,您可以在Kind(ndb.Model)中添加和删除属性,而无需更新架构。

如果您还想清理实体,请查看this anwser from Guido