def on_post(self, req, resp): if not req.content_length: resp.status = falcon.HTTP_422 return data = req.context['body'] try: list, created = TodoList.get_or_create(name=DEFAULT_LIST) t = Todo.create(list=list, **data) resp.body = json.dumps(model_to_dict(t), cls=Encoder) resp.status = falcon.HTTP_201 except IntegrityError as e: log.exception('Failed to create todo.') resp.status = falcon.HTTP_422