0

Я внедряю веб-приложение на основе Google App Engine. Приложения использует NDB и есть два объекта (скажем, А и В) с одного до многих отношений реализуются с помощью этого свойства в модели классовудаление связей в объектах ndb (Google App Engine)

bObjects = ndb.KeyProperty(repeated=True); 

У меня есть экземпляр A (a1) в связи с три экземпляра B (b1, b2, b3) Я пытаюсь удалить b2. Для этого я стараюсь, чтобы удалить его из отношений с a1 таким образом

a1.bObjects.remove(b2.key) 

команда выполняется, но элемент не удаляется. Что я делаю не так?

+0

Просто чтобы быть ясно, так как вы не показывают его в вашем примере. Вы делаете 'a1.put()' после 'a1.bObjects.remove (b2.key)'? –

+0

отлично! Я всегда должен это выразить! Спасибо! – lowcoupling

+0

Удивительно, я дам ему ответ. –

ответ

3

Как указано в комментариях выше, вам всегда нужно вызвать метод put() для сохранения и отправки изменений обратно в хранилище данных.

В вашем примере правильный код, чтобы сохранить изменения будут:

a1.bObjects.remove(b2.key) 
    a1.put() 
Смежные вопросы