def post(self, extra=None): handler_data = self.find_handler('post') self.handle_request_filters(handler_data.handler) args = [] if hasattr(handler_data.handler, 'expected_type'): if isinstance(self.data, (list, tuple)) and not handler_data.handler.expected_type_allow_multiple: raise HttpResponseException("Cannot accept multiple items") unique_props = () if handler_data.handler.expected_type_unique_props: unique_props = handler_data.handler.expected_type_unique_props data = Crud.create(handler_data.handler.expected_type, self.data, unique_props) args.insert(0, data) for k, v in handler_data.kwargs.iteritems(): if k is None: del handler_data.kwargs[None] break needed_args = {} for key, val in handler_data.kwargs.iteritems(): if key in handler_data.handler.required_arg_keys: needed_args[key] = val result = handler_data.handler(*args, **needed_args) self.handle_response_filters(handler_data) self.write(result)