diff --git a/requirements/base.in b/requirements/base.in
index 51b2837720c55b6a81bc22d138afcc50c4baecf2..74a45feea93267859f025fc2f1257250f5cd5af9 100644
--- a/requirements/base.in
+++ b/requirements/base.in
@@ -1,7 +1,7 @@
 wagtail
 wagtail-metadata
 wagtail-trash
-django
+django<4.2  # PostgreSQL 12.20 support
 django-environ
 django-extensions
 django-redis
@@ -10,7 +10,7 @@ django-widget-tweaks
 django-simple-captcha
 gql[all]
 numpy
-psycopg2-binary<=2.9.9
+psycopg2-binary
 pirates
 whitenoise==5.3.0
 opencv-python
diff --git a/requirements/base.txt b/requirements/base.txt
index 33c5e759754d9192c0919f5586c4d6db79453e1c..41694f824fec383d064e11a6e364220fe1776227 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -34,7 +34,7 @@ attrs==24.2.0
     #   requests-cache
 backoff==2.2.1
     # via gql
-beautifulsoup4==4.12.3
+beautifulsoup4==4.11.2
     # via
     #   -r base.in
     #   wagtail
@@ -85,7 +85,7 @@ decorator==5.1.1
     # via ipython
 defusedxml==0.7.1
     # via willow
-django==5.1.2
+django==4.1.13
     # via
     #   -r base.in
     #   django-extensions
@@ -99,14 +99,13 @@ django==5.1.2
     #   django-taggit
     #   django-treebeard
     #   djangorestframework
-    #   laces
     #   mozilla-django-oidc
     #   wagtail
 django-environ==0.11.2
     # via -r base.in
 django-extensions==3.2.3
     # via -r base.in
-django-filter==24.3
+django-filter==23.5
     # via wagtail
 django-modelcluster==6.3
     # via wagtail
@@ -118,17 +117,17 @@ django-redis==5.4.0
     # via -r base.in
 django-settings-export==1.2.1
     # via -r base.in
-django-simple-captcha==0.6.0
+django-simple-captcha==0.5.20
     # via -r base.in
-django-taggit==5.0.1
+django-taggit==4.0.0
     # via wagtail
 django-treebeard==4.7.1
     # via wagtail
 django-widget-tweaks==1.5.0
     # via -r base.in
-djangorestframework==3.15.2
+djangorestframework==3.15.1
     # via wagtail
-draftjs-exporter==5.0.0
+draftjs-exporter==2.1.7
     # via wagtail
 et-xmlfile==2.0.0
     # via openpyxl
@@ -151,7 +150,9 @@ graphql-core==3.2.5
 h11==0.14.0
     # via httpcore
 html5lib==1.1
-    # via weasyprint
+    # via
+    #   wagtail
+    #   weasyprint
 httpcore==1.0.6
     # via httpx
 httplib2==0.22.0
@@ -180,8 +181,6 @@ kombu==5.4.2
     # via celery
 l18n==2021.3
     # via wagtail
-laces==0.1.1
-    # via wagtail
 markdown==3.7
     # via -r base.in
 matplotlib-inline==0.1.7
@@ -228,7 +227,7 @@ prompt-toolkit==3.0.48
     #   ipython
 propcache==0.2.0
     # via yarl
-psycopg2-binary==2.9.9
+psycopg2-binary==2.9.10
     # via -r base.in
 ptyprocess==0.7.0
     # via pexpect
@@ -337,7 +336,7 @@ vine==5.1.0
     #   amqp
     #   celery
     #   kombu
-wagtail==6.2.2
+wagtail==5.2.6
     # via
     #   -r base.in
     #   wagtail-metadata
@@ -365,7 +364,7 @@ websockets==11.0.3
     # via gql
 whitenoise==5.3.0
     # via -r base.in
-willow[heif]==1.9.0
+willow[heif]==1.6.3
     # via
     #   wagtail
     #   willow
diff --git a/requirements/dev.in b/requirements/dev.in
index 0cc5912dfdbe9cdc70567d4ac410670a9628a313..4eb17d7061f84fd84bd48712765a42491de9d356 100644
--- a/requirements/dev.in
+++ b/requirements/dev.in
@@ -1,4 +1,4 @@
-django
+django<4.2
 django-debug-toolbar
 pytest
 pytest-sugar
diff --git a/requirements/dev.txt b/requirements/dev.txt
index cf59441f3584db3d56440439e0c6f0994a7ef843..cdac1a7fadaa0452a07e24d981349754acba0abf 100644
--- a/requirements/dev.txt
+++ b/requirements/dev.txt
@@ -8,11 +8,11 @@ asgiref==3.8.1
     # via django
 coverage[toml]==7.6.4
     # via pytest-cov
-django==5.1.2
+django==4.1.13
     # via
     #   -r dev.in
     #   django-debug-toolbar
-django-debug-toolbar==4.4.6
+django-debug-toolbar==4.3.0
     # via -r dev.in
 factory-boy==3.3.1
     # via pytest-factoryboy