From df41c8850c454d81bcca5d858c1617aba3a75eef Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 24 Apr 2023 00:56:13 -0400 Subject: [PATCH] 400 error messages --- catalog/views.py | 7 ++++--- common/templates/400.html | 1 + common/views.py | 8 +++++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/catalog/views.py b/catalog/views.py index 891da14a..f105bbf9 100644 --- a/catalog/views.py +++ b/catalog/views.py @@ -1,4 +1,5 @@ import logging +from django.contrib import messages from django.shortcuts import render, get_object_or_404, redirect from django.contrib.auth.decorators import login_required, permission_required from django.utils.translation import gettext_lazy as _ @@ -147,7 +148,7 @@ def create(request, item_model): form.instance.save() return redirect(form.instance.url) else: - raise BadRequest() + raise BadRequest(form.errors) else: raise BadRequest() @@ -175,7 +176,7 @@ def edit(request, item_path, item_uuid): form.instance.save() return redirect(form.instance.url) else: - raise BadRequest() + raise BadRequest(form.errors) else: raise BadRequest() @@ -233,7 +234,7 @@ def merge(request, item_path, item_uuid): item = get_object_or_404(Item, uid=get_uuid_or_404(item_uuid)) new_item = Item.get_by_url(request.POST.get("new_item_url")) if not new_item or new_item.is_deleted or new_item.merged_to_item_id: - raise BadRequest() + raise BadRequest("Can't merge to a deleted or redirected item") _logger.warn(f"{request.user} merges {item} to {new_item}") item.merge_to(new_item) update_journal_for_merged_item(item_uuid) diff --git a/common/templates/400.html b/common/templates/400.html index f4913675..6c5047e6 100644 --- a/common/templates/400.html +++ b/common/templates/400.html @@ -29,6 +29,7 @@ 无效的请求
+ {{ exception }} 您可能提交了无效的数据,或者相关内容已被作者删除。如果您确信这是我们的错误,欢迎通过页面底部的链接联系。
diff --git a/common/views.py b/common/views.py index 23079e29..35e38edc 100644 --- a/common/views.py +++ b/common/views.py @@ -1,3 +1,4 @@ +from django.contrib import messages from django.shortcuts import redirect, render from django.urls import reverse from django.contrib.auth.decorators import login_required @@ -18,7 +19,12 @@ def home(request): def error_400(request, exception=None): - return render(request, "400.html", status=400) + return render( + request, + "400.html", + {"exception": exception}, + status=400, + ) def error_403(request, exception=None):