我有一个遗留的googleappengine代码,在Python中有以下实体类
class AffiliateParent(db.Model):
name = db.StringProperty(required = True)
class Affiliate(db.Model):
email = db.StringProperty(required = True)
point_gain = db.IntegerProperty()
point_used = db.IntegerProperty()
#feature_upgrade = db.ListProperty(str)
modified_time = db.DateTimeProperty(auto_now = True)
我在想,下面是生成唯一id的正确方法吗?它们在Affiliate
表中保证唯一吗?你知道吗
affiliate_parent_key = AffiliateParent.all(keys_only=True).filter('name =', 'yancheng').get();
affiliate_parent = db.get(affiliate_parent_key);
# check whether affiliate exist, if not create one
affiliate_parent = db.get(affiliate_parent_key);
q = Affiliate.all()
q.ancestor(affiliate_parent)
q.filter('email =', email)
affiliate = q.get()
if not affiliate:
affiliate = Affiliate(
email = email,
point_gain = 0,
point_used = 0,
parent = affiliate_parent
)
affiliate.put()
# 4503602445942784
# is this unique?
unique_id = affiliate.key().id()
是的,如果在实例化模型时不提供
id
或key
,那么数据存储将生成一个唯一的ID,并在.put()
创建实体时将其分配给实体。。。因此affiliate.key.id()
将是唯一的您还可以使用
allocate_ids(count)
生成唯一的idhttps://cloud.google.com/appengine/docs/python/datastore/functions#allocate_ids
相关问题 更多 >
编程相关推荐