def post(self): data = self.request.json query = self.db.query(Package).filter_by(name=data["name"]) pkg = None if query.count() == 0: pkg = Package(**data) self.db.add(pkg) self.db.commit() else: pkg = query.one() for key, value in data.iteritems(): pkg.__setattr__(key, value) self.db.commit() self.finish(pkg.serialize())