ndb.StringProperty 的默认值未在我的 App Engine-app 中设置
default-value for ndb.StringProperty are not set at my App Engine-app
我将用户保存在 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 的默认值是否有一些我应该知道的限制?
如果您提供空字符串作为参数,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>')
原来是“<...>”字符导致了问题。
我将用户保存在 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 的默认值是否有一些我应该知道的限制?
如果您提供空字符串作为参数,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>')
原来是“<...>”字符导致了问题。