'<' '<' не поддерживается между экземплярами 'NoneType' и 'int' django views.py
шаблоны/html
{% if guess == rand_num %}
<h1>{{message1}}</h1>
{% elif guess > rand_num %}
<h1>{{message3_a}}</h1>
<h1>{{message3_b}}</h1>
{% elif guess < rand_num %}
<h1>{{message2_a}}</h1>
<h1>{{message2_b}}</h1>
{% endif %}
views.py
определение просто(запрос, ):
rand_num = случайный выбор(lst)
печать(rand_num)
попыток = 11
для _ в диапазоне(0, 10):
# print(если "У вас осталось {попыток} угадать число")
# guess = int(ввод("Сделайте предположение: "))
guess = запрос.GET.get('угаданный номер')
, если guess == случайный номер.:
возвращает render(запрос, 'easy.html', {'попытки': попытки, "сообщение 1": f"Вы поняли! Ответом было {rand_num}"})
прервать
догадку elif < rand_num:
попыток -= 1
возвращает рендеринг(запрос, 'easy.html', {'attempts': попытки, "message2_a": "Слишком низкий уровень", "message2_b": "Угадайте еще раз"})
если угадать, то > случайное число:
попыток -= 1
возвращает рендеринг(запрос, 'easy.html', {'попытки': попытки, "сообщение 3_a": "Слишком высокое значение", "сообщение 2_b": "Угадайте еще раз""})
попыток -= 1
возвращает рендеринг(запрос, 'easy.html', {'попытки': попытки, 'угадать': угадать, 'rand_num': ранд_нум})
возвращает рендеринг(запрос, 'easy.html')
я пытаюсь запустить этот код на Django. но он не запускается..
Вы можете явно проверить, существуют ли переменные перед выполнением сравнения.
{% if guess is not None and rand_num is not None %}
{% if guess == rand_num %}
<h1>{{ message1 }}</h1>
{% elif guess > rand_num %}
<h1>{{ message3_a }}</h1>
<h1>{{ message3_b }}</h1>
{% elif guess < rand_num %}
<h1>{{ message2_a }}</h1>
<h1>{{ message2_b }}</h1>
{% endif %}
{% else %}
<h1>No guess or random number provided.</h1>
{% endif %}
В качестве альтернативы вы можете использовать фильтр по умолчанию, чтобы указать значение по умолчанию, если переменная отсутствует или равна None
{% if guess is not None or rand_num is not None %}
{% if guess|default:0 == rand_num|default:0 %}
<h1>{{ message1 }}</h1>
{% elif guess|default:0 > rand_num|default:0 %}
<h1>{{ message3_a }}</h1>
<h1>{{ message3_b }}</h1>
{% elif guess|default:0 < rand_num|default:0 %}
<h1>{{ message2_a }}</h1>
<h1>{{ message2_b }}</h1>
{% endif %}
{% else %}
<h1>No guess or random number provided.</h1>
{% endif %}
Возможно, вам захочется сделать что-то еще, чтобы подтвердить, что ваш параметр guessed_number
существует и в конечном итоге является значением int. Тогда остальная часть этой логики должна быть более понятной.
Вы можете:
Убедитесь, что параметр запроса присутствует в первую очередь, а не равен None
Убедитесь, что предположение является действительным целым числом
guess = request.GET.get('guessed_number', None) if not guess: return HttpResponseBadRequest('You must provide a guess number') try: guess_number = int(guess) except ValueError: return HttpResponseBadRequest('Guess number must be an integer') # do the rest of the logic with assurance that "guess" is an int you can use