Google Appengine Datastore我想添加primary_key

时间:2013-08-28 19:27:03

标签: python google-app-engine

我有一个ndb模型,我使用Python + google appengine。我想将主键添加到我的第一个字段“name”。例如我添加了一个名称“Ada”,之后如果我想再次添加“Ada”,它不能添加,它会给我一个错误。我可以用django轻松完成,但我无法弄清楚google appengine。你能告诉我一个解决方案吗?这是我的代码:

class User(ndb.Model):
    username = ndb.StringProperty(indexed=False)
    created_date = ndb.DateTimeProperty(auto_now_add=True)
    updated_date = ndb.DateTimeProperty(auto_now_add=True)

1 个答案:

答案 0 :(得分:1)

您应该使用get_or_insert()来为您的实体添加命名密钥。

因此,如果您的用户名为name = 'Ada',则可以执行以下操作:

 user_db = User.get_or_insert(name.lower(), username=name)

第一个参数是key_name,我使用lower()函数只是为了确保它们是一致的,而名称为'ADA'的人将无法创建新实体,除非你想要那个。