我有一个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)
答案 0 :(得分:1)
您应该使用get_or_insert()
来为您的实体添加命名密钥。
因此,如果您的用户名为name = 'Ada'
,则可以执行以下操作:
user_db = User.get_or_insert(name.lower(), username=name)
第一个参数是key_name
,我使用lower()
函数只是为了确保它们是一致的,而名称为'ADA'
的人将无法创建新实体,除非你想要那个。