当我创建一个对象与NDB的方法把它自动密钥类型(种类,ID),其中id是一个数字的创造的关键。 在所有的文档它表明你可以使用钥匙的ID字符串,但我无法找到一个对象被创建时,如何自动做到这一点。
我有一个用户模式,我想使用的用户的用户名(因为其独特的)为重点的ID为快速的检索。 是,即使是一个好主意吗? 我不会有什么问题的用户名,因为它的用户submited(我验证输入)?
当我创建一个对象与NDB的方法把它自动密钥类型(种类,ID),其中id是一个数字的创造的关键。 在所有的文档它表明你可以使用钥匙的ID字符串,但我无法找到一个对象被创建时,如何自动做到这一点。
我有一个用户模式,我想使用的用户的用户名(因为其独特的)为重点的ID为快速的检索。 是,即使是一个好主意吗? 我不会有什么问题的用户名,因为它的用户submited(我验证输入)?
class UserModel(ndb.Model):
...
user_model_entity = UserModel(id='some_string', ...)
如果这些ID有可能发生变化,这可能是一个坏主意。 如果这是你自己的系统,你可以对潜在的变化作出反应,这是一个好主意,但你必须确保标识的决定使用他们之前唯一的,相对稳定。
您在创建时指定的实体的ID。 当你定义的模型,你不设置id属性那里。 因此,例如您有:
class User(ndb.Model):
# fields here
当您创建模型,您有:
user = User(id='username', ...)
由于用户名是独一无二的,您验证输入,那么你不会有这种方法的任何问题。
有关的详细信息, ndb Model
构造,你可以看看NDB模型类-构造函数 。
希望这可以帮助。
你也可以为你的模型实体提供整数ID(不一定是字符串)。
class User(ndb.Model):
...
user = User(id=1234567890, ...)
user.put()