Значение по умолчанию для ndb.StringProperty не установлено в моем приложении App Engine
Я сохраняю пользователей в NDB App Engine. Некоторые значения являются обязательными, но необязательными, поэтому я хочу, чтобы они были установлены по умолчанию, если они недоступны. Когда я создаю пользователя (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 ответа
Решение
Если вы предоставите пустые строки в качестве параметров, 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>')