Django. Как получить переменную, переданную в template из view в другой view?
Мне нужно передать num1 из first_game в checking_game_answer. Как это сделать?
Вот views.py:
def first_game(request):
num1 = generate_number()
return render(request, 'first_game.html', context={"num1": num1})
def checking_game_answer(request):
rounds = 0
while rounds < MAX_ROUNDS:
answer = AnswerForm()
answer = request.POST.get("answer")
answer = {"answer": answer}
correct_answer = get_correct_answer(num1)
if answer == correct_answer:
rounds += 1
return HttpResponseRedirect("/first_game")
else:
return HttpResponse(render(request, "game_abort.html", context={"correct_answer":correct_answer, "answer": answer}))
return HttpResponse(render(request, "game_congrats.html"))
Вот first.game.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
{% block title %}
first_game
{% endblock %}
</title>
</head>
<body>
<p>Answer "yes" if the number is even, otherwise answer "no".</p>
<form method = "POST" action="checking_game_answer/">
{% csrf_token %}
<p>
<label>Введите ответ</label><br>
<input type="text" name="answer" />
</p>
<input type="submit" value="Продолжить">
</form>
</body>
</html>
get_correct_answer
def get_correct_answer(num1): # проверяем число на чётность
return "yes" if (num1 % 2 == 0) else "no"
def generate_number():
return random.randint(2, 30)
Ответы (1 шт):
Автор решения: a1723
→ Ссылка
Классика. Пару часов искал ответ. Задал вопрос. Нашёл через пару минут.
<input type="hidden" name="num1" value="{{num1}}">,