0

我有一个 ndb 模型,我使用 Python + google appengine。我想将主键添加到我的第一个字段“名称”。例如我添加了一个名称“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)
4

1 回答 1

1

您应该使用get_or_insert()which 将命名键添加到您的实体。

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

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

第一个参数是 the key_name,我使用该lower()函数只是为了确保它们保持一致,并且'ADA'除非您想要,否则有名字的人将无法创建新实体。

于 2013-08-28T19:40:57.887 回答