Флэш-сообщения Django отображаются только на странице администратора django, а не на шаблоне

#python #html #django

#python #HTML #django

Вопрос:

У меня есть форма входа в систему, и я просто хочу отобразить сообщение с подтверждением, как только пользователь войдет в систему. Сообщение отображается, но оно отображается на странице администратора django, а не на шаблоне (веб-страница, видимая пользователю). Я проверил почти все, например, импорт сообщений из django.contrib, проверку списка установленных приложений, списка промежуточного программного обеспечения, context_processors. Я не знаю, где я ошибаюсь или что мне не хватает. Пожалуйста, помогите!

Мой views.py функция

 def login_method(request):
    loginusername = request.POST['loginusername']
    loginpass = request.POST['loginpass']
    user = authenticate(username=loginusername, password=loginpass)
    if user is not None:
        auth_login(request, user)
        messages.success(request, "Successfully Logged In!")
        return redirect("appHome")
    else:
        messages.error(request, "Invalid Credentials, Please try again!")
        return redirect("home")
  

Ответ №1:

Вы должны добавить этот фрагмент кода в свой шаблон, где вы хотите отображать сообщения:

     {% if messages %}
        {% for message in messages %}
                <div class="alert alert-{{ message.tags }}">{{ message }}</div>
        {% endfor %}
    {% endif %}
  

а также убедитесь, что вы добавили 'django.contrib.messages' в свой INSTALLED_APPS

Комментарии:

1. Большое спасибо, приятель! Это сработало. Я изучаю django и пытаюсь изучить возможности. Пропустил HTML-часть. Еще раз спасибо! Будьте осторожны!

2. Нет проблем, чувак! можете ли вы принять мой ответ, пожалуйста? Спасибо!

3. Абсолютно чувак! Это мой первый пост в stackoverflow, не знал, что есть что-то подобное. Выполнено