From 6d4c671a8feb5ad905e5f2a29ae1b5dbf8d29211 Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Mon, 12 Jun 2023 23:05:00 +0200 Subject: Allow custom submit buttons to return a HttpResponse And if they do, return this immediately instead of continuing to process the submit. --- postgresqleu/util/backendviews.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'postgresqleu/util/backendviews.py') diff --git a/postgresqleu/util/backendviews.py b/postgresqleu/util/backendviews.py index aa9ec34b..e1eb614b 100644 --- a/postgresqleu/util/backendviews.py +++ b/postgresqleu/util/backendviews.py @@ -152,7 +152,12 @@ def backend_process_form(request, urlname, formclass, id, cancel_url='../', save # We do! f = form.fields[k[10:]] if f.callback: - f.callback(request) + r = f.callback(request) + # If the callback returns a HttpResponse + # (typically a redirect), return that immediately + # (without saving the form). + if isinstance(r, HttpResponse): + return r return HttpResponseRedirect(".") if form.is_valid(): -- cgit v1.2.3