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

Нмчего там нет, просто на милиссекунды появляется запрос на test/. И это все как-то странно, иногда запросы идет, но функция ничего не возвращает( хотя в консоли все отображается), а иногда вылетает ошибка, о которой писал выше.

он не должен пропадать, результат в любом случае должен быть там.
Может фильтр стоит какой-нибудь


это когда запрос доходит, а когда нет, то просто на милиссекунды появляется запрос на test/.


Еще есть вот такие ошибки, не знаю влияет ли как-то

То есть в теории на хосте все будет работать нормально?

Если проблема в этом, то да.

Я попробовал сменить версию питона на 3.7.0 (до этого была 3.9.5), ошибка ушла, но теперь появилась ошибка Broken pipe from ('127.0.0.1', 50513), я почитал про нее, и вроде бы это никак не сказывается на работоспособности, но почему-то нет ридеректа, хотя вход происходит.

def log_hand(request):
    
    try:
        username = request.POST['username']
        password = request.POST['password']
        
        user = authenticate(username=username, password=password)
        
        if user is not None:
            if user.is_active:
                login(request, user)
                
                return HttpResponseRedirect('/main/')
            else:
                
            	return JsonResponse({'v': 'no'})
        else:
            
            return JsonResponse({'v': 'no'})
    except:
        
        return JsonResponse({'v': 'no'})

Это наверно разные случаи.
Вон похожие жалобы, что нет редиректа
python - Broken pipe from ('127.0.0.1', 57124) - Stack Overflow
reactjs - Post request in Django results in broken pipe - Stack Overflow

Хотя конечно может это и не связано с редиректом.

Что в ответе на запрос в DevTools —> Network, код ответа 200 или 302?

Это строка точно вызывается?

Я бы добавил вывод в лог/консоль для отладки.

В ответе как обычно ничего.

На строке и происходит ошибка.

А если я в теории попробую переустановить виндовс или поставить линукс, это поможет?)

Смотря что проблему вызывает :man_shrugging:

Вообще сейчас модно запускать это всё через Docker, чтоб меньше зависеть от своей ОС и ее настроек.
Типа такого (РНР): Re: Где найти хороший источник по установке и конфигурации LAMP?

Не знаю как это в питоне/джанго делают. Например, на оф. сайте докера есть какой-то пример
Quickstart: Compose and Django | Docker Documentation

Вообщем установил я линукс). Пока ошибок нет, посмотрим, что будет дальше)
Как можно проверять в js, есть ли в запросе какая-то информация. То есть у меня есть форма, которая отправляет запрос на url, а там, если юзер есть то происходит вход и ридерект, а если нет, то возврашается JsonResponse, и как можно сделать js функцию, которая обрабатывает это и говорит, что пароль неправильный?

Так data ж результат

console.log(data.v)

Только тут непонятно почему при успешном логине оно редиректит, а не JSON отправляет. Страница в браузере не поменяется от редиректа запросов отправленных JS.
Тут наверно лучше всегда JSON отдавать с описанием результата операции, и проверив его делать что надо через JS. window.location.href = ... чтоб перейти на другую страницу из JS.

Это если использовать ajax (потому что редиректа почему-то не происходило в питоне), я его убрал и просто использую action, поэтому не получится использовать success

Так а причем тогда JS. Если браузер отправляет запрос при отправке обычной формы, то через JS запрос не перехватить, просто новая страница загрузится.

видимо он происходил, но

Тогда редирект в 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 форма тоже отправится на текущий адрес.