Как выбросить ошибку django 404 в качестве сообщения об ошибке на ту же страницу
Я пытаюсь запросить экземпляр определенной модели, FoodRedistributor, и я хотел бы выдать всплывающее сообщение об ошибке на той же странице, если FoodRedistributor с заданным именем не существует. Я пытался сделать Http404, но это перенаправляет меня на страницу 404, что не то, как я хотел бы, чтобы пользователь увидел ошибку. Использование messages.info не дает мне никакого результата.
if request.method == "POST":
username = request.POST.get("username")
password = request.POST.get("password")
try:
user = FoodRedistributor.objects.get(name=username)
except:
raise Http404("No food redistributor matches the given query.")
1 Если вы не против использования сообщений типа error
if request.method == "POST":
username = request.POST.get("username")
password = request.POST.get("password")
try:
user = FoodRedistributor.objects.get(name=username)
except:
errormessage = 'No food redistributor matches the given query.'
#raise Http404("No food redistributor matches the given query.")
#render template with errormessage
2 Передайте ошибочное сообщение в шаблон через контекстный словарь и выполните рендеринг той же страницы
3 Вернуть сообщение об ошибке в шаблоне, если сообщение об ошибке существует
template.html
<!-- template headers -->
{% if errormessage %}
<p style="color:red;"> {{errormessage}} </span>
{% endif %}
<!-- template rest of content-->
Если вы можете использовать JS для создания всплывающего окна на основе переданного значения сообщения об ошибке