Почему функции ничего не возращает

Тогда редирект в js нужен?

Да.

Попробовал я протестировать, но почему-то функция success не вызывается, пробовал алертить ответ, но, ничего не происходит. Возможно страница обновляется и не просто не успевает обновляться? Хотя у меня есть похожий пример, где все работает:

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script src="https://code.jquery.com/jquery-3.4.1.js"></script>
</head>
<body>
	<div class="form_container">
	<div id="message"></div>
	
	<form id="form" onsubmit="f(this)">
		{% csrf_token %}
		<input type="text" name="bet">
		<input type="text" name="bombs_counts">
		<input type="checkbox" name="x2">X2
		<input type="checkbox" name="x3">X3
		<input type="checkbox" name="x4">X4
		<input type="submit" name="send" value="Отправить">
	</form>
	<h1>{{request.user}} -- {{request.user.balance}}</h1>
</div>
<script>


function f(el){
	$.ajax({
		
		url: 'test/',
		method: 'post',
		dataType: 'html',
		data: $(el).serialize(),
		success: function(data){
			alert(data)
		}
	});
};
</script>
</body>
</html>
def test(request):
    bombs = int(request.POST['bombs_counts'])
    bet = int(request.POST['bet'])

    # bombs = int(response['bombs_counts'])

    print('BOMBS == ', bombs, 'BET ==', bet)

    r = generate_map(bombs)
    print('R == ', r, json.dumps(r))

    print(r)

    return HttpResponse(json.dumps(r))

А зачем она обновляется? Обычно либо используют стандартную отправку браузером без ajax, либо отключают стандартную и используют ajax.

Стандартную через action?

Да, ну точнее без отмены отправки через например return false в onsubmit

Без action форма тоже отправится на текущий адрес.