我的App Engine应用程序未设置ndb.StringProperty的默认值

时间:2015-09-30 15:00:19

标签: python google-app-engine properties google-cloud-datastore app-engine-ndb

我将用户保存在App Engine的NDB中。有些值是必需的但是没有问题,所以我希望它们设置为默认值(如果不可用)。 当我创建用户(primaryEmail =" example@dom.com")时,默认值似乎是一个空字符串:

User(key=Key('User', 4523189241643008),familyName=u'', givenName=u'', primaryEmail=u'example@dom.com')

class User(ndb.Model):
  primaryEmail              = ndb.StringProperty(required=True)
  givenName                 = ndb.StringProperty(required=True, default='<name>')
  familyName                = ndb.StringProperty(required=True, default='<surname>')

为StringProperties设置我应该知道的默认值是否存在一些限制?

2 个答案:

答案 0 :(得分:1)

如果您提供空字符串作为参数,NDB将存储它们。

..., familyName=u'', givenName=u'', ...

如果您不提供参数,它将使用默认值。

User(key=Key('User', 4523189241643008), primaryEmail=u'example@dom.com')

注意:这也意味着您无法创建所需的字段:

class User(ndb.Model):
  primaryEmail              = ndb.StringProperty(required=True)
  givenName                 = ndb.StringProperty(default='<name>')
  familyName                = ndb.StringProperty(default='<surname>')

答案 1 :(得分:1)

取出&#39;&lt; ...&gt;&#39;人物造成了这个问题。