diff --git a/constraints.txt b/constraints.txt
index 17f19d4..b3c4442 100644
--- a/constraints.txt
+++ b/constraints.txt
@@ -16,11 +16,11 @@ certifi==2024.8.30
     # via
     #   requests
     #   selenium
-charset-normalizer==3.3.2
+charset-normalizer==3.4.0
     # via requests
 confusable-homoglyphs==3.3.1
     # via django-registration
-django==5.1.1
+django==5.1.2
     # via
     #   -r requirements.in
     #   django-anymail
@@ -41,7 +41,7 @@ django-extensions==3.2.3
     # via -r requirements.in
 django-htmx==1.19.0
     # via -r requirements.in
-django-linear-migrations==2.13.0
+django-linear-migrations==2.15.0
     # via -r requirements.in
 django-registration==3.4
     # via -r requirements.in
diff --git a/requirements-dev.txt b/requirements-dev.txt
index 1ad1631..65e3696 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -15,7 +15,7 @@ attrs==24.2.0
     #   hypothesis
     #   outcome
     #   trio
-black==24.8.0
+black==24.10.0
     # via -r requirements-dev.in
 blessed==1.20.0
     # via curtsies
@@ -30,7 +30,7 @@ certifi==2024.8.30
     #   selenium
 cfgv==3.4.0
     # via pre-commit
-charset-normalizer==3.3.2
+charset-normalizer==3.4.0
     # via
     #   -c constraints.txt
     #   requests
@@ -38,7 +38,7 @@ click==8.1.7
     # via
     #   black
     #   pip-tools
-coverage[toml]==7.6.1
+coverage[toml]==7.6.3
     # via pytest-cov
 curtsies==0.4.2
     # via bpython
@@ -46,15 +46,15 @@ cwcwidth==0.1.9
     # via
     #   bpython
     #   curtsies
-distlib==0.3.8
+distlib==0.3.9
     # via virtualenv
-django==5.1.1
+django==5.1.2
     # via
     #   -c constraints.txt
     #   django-browser-reload
     #   django-debug-toolbar
     #   model-bakery
-django-browser-reload==1.15.0
+django-browser-reload==1.16.0
     # via -r requirements-dev.in
 django-debug-toolbar==4.4.6
     # via -r requirements-dev.in
@@ -66,7 +66,7 @@ h11==0.14.0
     # via
     #   -c constraints.txt
     #   wsproto
-hypothesis==6.112.4
+hypothesis==6.115.0
     # via -r requirements-dev.in
 identify==2.6.1
     # via pre-commit
@@ -81,9 +81,9 @@ invoke==2.2.0
     # via -r requirements-dev.in
 jinja2==3.1.4
     # via pytest-html
-markupsafe==2.1.5
+markupsafe==3.0.1
     # via jinja2
-model-bakery==1.19.5
+model-bakery==1.20.0
     # via -r requirements-dev.in
 mypy-extensions==1.0.0
     # via black
@@ -109,7 +109,7 @@ platformdirs==4.3.6
     #   virtualenv
 pluggy==1.5.0
     # via pytest
-pre-commit==4.0.0
+pre-commit==4.0.1
     # via -r requirements-dev.in
 pygments==2.18.0
     # via bpython
diff --git a/requirements.txt b/requirements.txt
index f30f86c..6ce0f95 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -16,11 +16,11 @@ certifi==2024.8.30
     # via
     #   requests
     #   selenium
-charset-normalizer==3.3.2
+charset-normalizer==3.4.0
     # via requests
 confusable-homoglyphs==3.3.1
     # via django-registration
-django==5.1.1
+django==5.1.2
     # via
     #   -r requirements.in
     #   django-anymail
@@ -41,7 +41,7 @@ django-extensions==3.2.3
     # via -r requirements.in
 django-htmx==1.19.0
     # via -r requirements.in
-django-linear-migrations==2.13.0
+django-linear-migrations==2.15.0
     # via -r requirements.in
 django-registration==3.4
     # via -r requirements.in