From c4811effd1a41c6c8da293726217359a0552370f Mon Sep 17 00:00:00 2001 From: Marco Braak Date: Tue, 11 Nov 2025 08:17:04 +0100 Subject: [PATCH 1/2] Use status 400 for missing meta data --- django_file_form/tus/views.py | 9 ++++----- testproject/django_file_form_example/tests/test_views.py | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/django_file_form/tus/views.py b/django_file_form/tus/views.py index 23dee88fa..10fc08918 100644 --- a/django_file_form/tus/views.py +++ b/django_file_form/tus/views.py @@ -35,11 +35,10 @@ def start_upload(request): response = get_tus_response() if request.META.get("HTTP_TUS_RESUMABLE", None) is None: - logger.warning("Received File upload for unsupported file transfer protocol") - response.status_code = 500 - response.reason_phrase = ( - "Received File upload for unsupported file transfer protocol" - ) + error_message = "Received file upload for unsupported file transfer protocol" + logger.warning(error_message) + response.status_code = 400 + response.reason_phrase = error_message return response metadata = {} diff --git a/testproject/django_file_form_example/tests/test_views.py b/testproject/django_file_form_example/tests/test_views.py index 85cba41ff..1508069d6 100644 --- a/testproject/django_file_form_example/tests/test_views.py +++ b/testproject/django_file_form_example/tests/test_views.py @@ -17,10 +17,10 @@ def test_post(self): def test_post_without_metadata(self): response = Client().post("/upload/") - self.assertEqual(response.status_code, 500) + self.assertEqual(response.status_code, 400) self.assertEqual( response.reason_phrase, - "Received File upload for unsupported file transfer protocol", + "Received file upload for unsupported file transfer protocol", ) def test_head(self): From a03eb9c368b751eb71f75ee9d1a477829cd99ce1 Mon Sep 17 00:00:00 2001 From: Marco Braak Date: Tue, 11 Nov 2025 12:00:59 +0100 Subject: [PATCH 2/2] Update changelog --- docs/changelog.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/changelog.md b/docs/changelog.md index 1ea109aaa..5b693afd7 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,9 @@ ## Changelog +**3.9.1 (november 11 2025)** + +- Issue #1158: return bad request status for missing meta data (thanks to Ivan Cvetkovic) + **3.9.0 (april 8 2025)** - Support Django 5.2; drop support for Django 5.0 @@ -20,7 +24,7 @@ **3.7.0 (june 27 2024)** - Issue #784: compile to es6. This reduces the size of the minified js file to 80k (from 119k) -- Issue #841. Drop support for Django 3.2 +- Issue #841: drop support for Django 3.2 - Issue #891: handle error with empty initial file in model form (thanks to Yanhui Xie) **3.6.0 (december 8 2023)**