def entrypoint(cls, request, *args, **kwargs):
# select proper action by http method
for action_class in cls.iter_actions():
if action_class.method == request.method:
break
else:
raise HttpResponseNotAllowed()
param_values = {}
for param_name, param_class in action_class.get_params().iteritems():
param_values[param_name] = param_class.construct(cls, request, args, kwargs)
try:
action = action_class(param_values)
return action.run()
except NodeParamError:
return HttpRequest(status=500) # TODO: report, logging etc
评论列表
文章目录