App Engine добавляет элементы в ListProperty - PullRequest
5 голосов
/ 29 января 2012

Я думаю, что схожу с ума, почему не выполняются следующие работы?

class Parent(db.Model):
    childrenKeys = db.ListProperty(str,indexed=False,default=None)

p = Parent.get_or_insert(key_name='somekey')
p.childrenKeys = p.childrenKeys.append('newchildkey')
p.put()

Я получаю эту ошибку:

BadValueError: Property childrenKeys is required

Док говорит:

default - это значение по умолчанию для свойства списка.Если Нет, по умолчанию используется пустой список.Свойство list может определять пользовательский валидатор для запрета пустого списка.

Так что, как я вижу, я получаю значение по умолчанию (пустой список) и добавляю к нему новое значение исохраняя его.

Ответы [ 2 ]

8 голосов
/ 29 января 2012

Вы должны удалить назначение p.childrenKeys:

class Parent(db.Model):
    childrenKeys = db.ListProperty(str,indexed=False,default=[])

p = Parent.get_or_insert('somekey')
p.childrenKeys.append('newchkey')
p.put()
5 голосов
/ 29 января 2012

Заменить это:

p.childrenKeys = p.childrenKeys.append('newchildkey')

с этим:

p.childrenKeys.append('newchildkey')

append() возвращает None, который нельзя присвоить p.childrenKeys.

...