@neulwert

Что это за объект {'error_message': "you don't select a choice."}?

Имеется такой html код:
{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}


И есть одна непонятка с самой переменной. Объект error message я нашел только в этом python коде, после except:

def vote(request, question_id):
    question = get_object_or_404(Question, pk=question_id)
    try:
        selected_choice = question.choice_set.get(pk=request.POST['choice'])
    except (KeyError, Choice.DoesNotExist):
        return render(request, 'polls/detail.html', {
            'question': question,
            'error_message': "You didn't select a choice.",
        })
    else:
        selected_choice.votes += 1
        selected_choice.save()
        return HttpResponseRedirect(reverse('polls:results', args=(question.id,)))


Объясните пожалуйста две переменные: question и error message. Они в кавычках и находятся в фигурных скобках. Похожи на словари, но я не уверен. Объясните, пожалуйста в чем их смысл, почему бы не создать обычную переменную и просто ссылаться на неё?

И особенно этот код: 'question': question, который находится среди представлений в файле views.py, как я понял, это выражение ссылается на django модель под названием question. То есть, в приложении существует два объекта с именем question. А что будет если мы будем ссылаться на имя question из html файла? Python будет искать код среди моделей в models.py и найдет модель question или он будет искать среди представлений в views.py и найдет переменную 'question': question, которая все равно отсылает нас к модели и в чем же смысл?
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
@antonksa
@muxui
Это ассоциативный массив.

Это п...дец.

Функция render() как я понял, по итогу возвращает ответ в виде JSON'a из массива.

Вот нахера писать, если вообще не понимаешь о чем???!!!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы