'Determine whether the request should be handled in earlier phase.
It determines the request should be handled by a preemptive action
on this table or by an AJAX row update before loading any data.'

def maybe_preempt(self):

    request = self.request
    (table_name, action_name, obj_id) = self.check_handler(request)
    if (table_name == self.name):
        new_row = self._meta.row_class(self)
        if (new_row.ajax and (new_row.ajax_action_name == action_name)):
            try:
                datum = new_row.get_data(request, obj_id)
                if (self.get_object_id(datum) == self.current_item_id):
                    self.selected = True
                    new_row.classes.append('current_selected')
                new_row.load_cells(datum)
                error = False
            except Exception:
                datum = None
                error = exceptions.handle(request, ignore=True)
            if request.is_ajax():
                if (not error):
                    return HttpResponse(new_row.render())
                else:
                    return HttpResponse(status=error.status_code)
        elif (new_row.ajax_cell_action_name == action_name):
            return self.inline_edit_handle(request, table_name, action_name, obj_id, new_row)
        preemptive_actions = [action for action in self.base_actions.values() if action.preempt]
        if action_name:
            for action in preemptive_actions:
                if (action.name == action_name):
                    handled = self.take_action(action_name, obj_id)
                    if handled:
                        return handled
    return None
