def setAction(self, book, status, price=None): user = self.user if not user: raise Exception("Not signed in") ub = UserBooks.gql("WHERE user_id = :1 AND book_id = :2 AND status=:3", user, book, status).get() if not ub: ub = UserBooks(user_id=user, book_id=book, status=status, price=price) ub.put() self.sendMessages(ub) elif price: ub.price = price ub.put() return [str(ub.key()), ub.price]