diff --git a/bookwyrm/views/admin/announcements.py b/bookwyrm/views/admin/announcements.py
index 47bb4ab94..0b5ce9fa4 100644
--- a/bookwyrm/views/admin/announcements.py
+++ b/bookwyrm/views/admin/announcements.py
@@ -102,7 +102,7 @@ class EditAnnouncement(View):
             return TemplateResponse(
                 request, "settings/announcements/edit_announcement.html", data
             )
-        announcement = form.save()
+        announcement = form.save(request)
         return redirect("settings-announcements", announcement.id)
 
 
diff --git a/bookwyrm/views/admin/link_domains.py b/bookwyrm/views/admin/link_domains.py
index 0b8674170..6501834a1 100644
--- a/bookwyrm/views/admin/link_domains.py
+++ b/bookwyrm/views/admin/link_domains.py
@@ -39,7 +39,7 @@ class LinkDomain(View):
         """Set display name"""
         domain = get_object_or_404(models.LinkDomain, id=domain_id)
         form = forms.LinkDomainForm(request.POST, instance=domain)
-        form.save()
+        form.save(request)
         return redirect("settings-link-domain", status=status)
 
 
diff --git a/bookwyrm/views/author.py b/bookwyrm/views/author.py
index c7b17310c..4dcf4c447 100644
--- a/bookwyrm/views/author.py
+++ b/bookwyrm/views/author.py
@@ -68,7 +68,7 @@ class EditAuthor(View):
         if not form.is_valid():
             data = {"author": author, "form": form}
             return TemplateResponse(request, "author/edit_author.html", data)
-        author = form.save()
+        author = form.save(request)
 
         return redirect(f"/author/{author.id}")
 
diff --git a/bookwyrm/views/feed.py b/bookwyrm/views/feed.py
index eb4678f75..6d7aeb239 100644
--- a/bookwyrm/views/feed.py
+++ b/bookwyrm/views/feed.py
@@ -30,7 +30,7 @@ class Feed(View):
         form = forms.FeedStatusTypesForm(request.POST, instance=request.user)
         if form.is_valid():
             # workaround to avoid broadcasting this change
-            user = form.save(commit=False)
+            user = form.save(request, commit=False)
             user.save(broadcast=False, update_fields=["feed_status_types"])
             filters_applied = True
 
diff --git a/bookwyrm/views/get_started.py b/bookwyrm/views/get_started.py
index 3285c076f..e31b64cb9 100644
--- a/bookwyrm/views/get_started.py
+++ b/bookwyrm/views/get_started.py
@@ -38,7 +38,7 @@ class GetStartedProfile(View):
         if not form.is_valid():
             data = {"form": form, "next": "get-started-books"}
             return TemplateResponse(request, "get_started/profile.html", data)
-        save_user_form(form)
+        save_user_form(request, form)
         return redirect(self.next_view)
 
 
diff --git a/bookwyrm/views/list/list.py b/bookwyrm/views/list/list.py
index 35e18d244..5c0dd2e4e 100644
--- a/bookwyrm/views/list/list.py
+++ b/bookwyrm/views/list/list.py
@@ -195,7 +195,7 @@ def add_book(request):
     if not form.is_valid():
         return List().get(request, book_list.id, add_failed=True)
 
-    item = form.save(commit=False)
+    item = form.save(request, commit=False)
 
     if book_list.curation == "curated":
         # make a pending entry at the end of the list
diff --git a/bookwyrm/views/preferences/edit_user.py b/bookwyrm/views/preferences/edit_user.py
index a1b5b3638..00bcd70aa 100644
--- a/bookwyrm/views/preferences/edit_user.py
+++ b/bookwyrm/views/preferences/edit_user.py
@@ -34,14 +34,14 @@ class EditUser(View):
             data = {"form": form, "user": request.user}
             return TemplateResponse(request, "preferences/edit_user.html", data)
 
-        user = save_user_form(form)
+        user = save_user_form(request, form)
 
         return set_language(user, redirect("user-feed", request.user.localname))
 
 
-def save_user_form(form):
+def save_user_form(request, form):
     """special handling for the user form"""
-    user = form.save(commit=False)
+    user = form.save(request, commit=False)
 
     if "avatar" in form.files:
         # crop and resize avatar upload
diff --git a/bookwyrm/views/report.py b/bookwyrm/views/report.py
index 118f67988..121b7a232 100644
--- a/bookwyrm/views/report.py
+++ b/bookwyrm/views/report.py
@@ -33,7 +33,7 @@ class Report(View):
         if not form.is_valid():
             raise ValueError(form.errors)
 
-        report = form.save()
+        report = form.save(request)
         if report.links.exists():
             # revert the domain to pending
             domain = report.links.first().domain