diff --git a/biscuit/apps/chronos/views.py b/biscuit/apps/chronos/views.py
index 78508d42254b5e16ac7b150cc1a6773a72b46e13..265e890f3baa173db5cad58ccc1f7e4ca64c3e41 100644
--- a/biscuit/apps/chronos/views.py
+++ b/biscuit/apps/chronos/views.py
@@ -140,8 +140,14 @@ def edit_substitution(request: HttpRequest, id_: int, week: int) -> HttpResponse
     lesson_substitution = LessonSubstitution.objects.filter(
         week=week, lesson_period=lesson_period).first()
     if lesson_substitution:
+        # Inject fields from URL as workaround for disabled form fields
+        # cf. https://stackoverflow.com/a/4664866/3035850
+        POST = request.POST.copy()
+        POST['week'] = week
+        POST['lesson_period'] = id_
+
         edit_substitution_form = LessonSubstitutionForm(
-            request.POST or None, instance=lesson_substitution)
+            POST or None, instance=lesson_substitution)
     else:
         edit_substitution_form = LessonSubstitutionForm(
             request.POST or None, initial={'week': week, 'lesson_period': lesson_period})