def update_client(self, client): count = 0 newClient = False clientObj = Client.get_by_id(client.auth.email) if ( clientObj is None ): newClient = True for c in client.child_list: d = datetime.datetime.now() next_month = datetime.datetime(d.year, d.month+1, 1) next_month_string = next_month.isoformat() + '.0000' pay = Payment() pay.start_date = datetime.datetime.strptime(next_month_string, "%Y-%m-%dT%H:%M:%S.%f") pay.end_date = datetime.datetime.strptime(next_month_string, "%Y-%m-%dT%H:%M:%S.%f") pay.pay_date = datetime.datetime.strptime(next_month_string, "%Y-%m-%dT%H:%M:%S.%f") c.payment = pay.put() client.key = ndb.Key(Client, client.auth.email) client.email = client.auth.email for c in client.child_list: KindergartenKey = ndb.Key(Kindergarten, c.kindergarten_id) c.kindergarten_key = KindergartenKey c.parent_id = client.email #c.put() kindergarten = Kindergarten.get_by_id(c.kindergarten_id) for kc in kindergarten.child_list: if ( client.email == kc.parent_id ): kindergarten.child_list.remove(kc) client.put() for c in client.child_list: count = count +1 kindergarten = Kindergarten.get_by_id(c.kindergarten_id) # c.client_email = client.auth.email # c.put() kindergarten.child_list.append(c) if ( count == len( client.child_list) ): kindergarten.put() return client