diff --git a/api/config/urls.py b/api/config/urls.py
index ba3b630d991828aa1be65c5eb524b560ee6a47bf..99fc32f1fce09e6a3b8c227e530102ba0e9abd17 100644
--- a/api/config/urls.py
+++ b/api/config/urls.py
@@ -5,7 +5,7 @@ from django.conf import settings
 from django.conf.urls import url
 from django.urls import include, path
 from django.conf.urls.static import static
-from django.contrib import admin
+from funkwhale_api.common import admin
 from django.views import defaults as default_views
 
 
diff --git a/api/funkwhale_api/common/admin.py b/api/funkwhale_api/common/admin.py
new file mode 100644
index 0000000000000000000000000000000000000000..4124a69b895fbdc5fe51e44d53b99810ac113a7d
--- /dev/null
+++ b/api/funkwhale_api/common/admin.py
@@ -0,0 +1,19 @@
+from django.contrib.admin import register as initial_register, site, ModelAdmin  # noqa
+from django.db.models.fields.related import RelatedField
+
+
+def register(model):
+    """
+    To make the admin more performant, we ensure all the the relations
+    are listed under raw_id_fields
+    """
+
+    def decorator(modeladmin):
+        raw_id_fields = []
+        for field in model._meta.fields:
+            if isinstance(field, RelatedField):
+                raw_id_fields.append(field.name)
+        setattr(modeladmin, "raw_id_fields", raw_id_fields)
+        return initial_register(model)(modeladmin)
+
+    return decorator
diff --git a/api/funkwhale_api/favorites/admin.py b/api/funkwhale_api/favorites/admin.py
index f56980e8cc9b368fe2c6702588f23ca50f457e6d..05530b0c67dd0a9c42808ff2e24d721b32f911cf 100644
--- a/api/funkwhale_api/favorites/admin.py
+++ b/api/funkwhale_api/favorites/admin.py
@@ -1,4 +1,4 @@
-from django.contrib import admin
+from funkwhale_api.common import admin
 
 from . import models
 
diff --git a/api/funkwhale_api/federation/admin.py b/api/funkwhale_api/federation/admin.py
index 7be8ac89ccff5f3a7cdbac444400b09187c3e315..98bc65247c9125d6548016ec540e2b1231a1fad2 100644
--- a/api/funkwhale_api/federation/admin.py
+++ b/api/funkwhale_api/federation/admin.py
@@ -1,4 +1,4 @@
-from django.contrib import admin
+from funkwhale_api.common import admin
 
 from . import models
 from . import tasks
diff --git a/api/funkwhale_api/history/admin.py b/api/funkwhale_api/history/admin.py
index cbc7f89dd45e5cf57e082790acbf40b570d5f93b..6aac94d0a4ef35abe6d673ba415b3e07c2840219 100644
--- a/api/funkwhale_api/history/admin.py
+++ b/api/funkwhale_api/history/admin.py
@@ -1,4 +1,4 @@
-from django.contrib import admin
+from funkwhale_api.common import admin
 
 from . import models
 
diff --git a/api/funkwhale_api/music/admin.py b/api/funkwhale_api/music/admin.py
index 0cb4641808b0bcb4a1fc1106b73118e302890684..8f9768857bbae298eb5587e526cc99a7c9f6e02d 100644
--- a/api/funkwhale_api/music/admin.py
+++ b/api/funkwhale_api/music/admin.py
@@ -1,4 +1,4 @@
-from django.contrib import admin
+from funkwhale_api.common import admin
 
 from . import models
 
diff --git a/api/funkwhale_api/playlists/admin.py b/api/funkwhale_api/playlists/admin.py
index 98ced232ee2f24c79db58529ace1539fa7fbb3de..0565352707690d6b955ddc5d4f9ea73ec1e543a6 100644
--- a/api/funkwhale_api/playlists/admin.py
+++ b/api/funkwhale_api/playlists/admin.py
@@ -1,4 +1,4 @@
-from django.contrib import admin
+from funkwhale_api.common import admin
 
 from . import models
 
diff --git a/api/funkwhale_api/radios/admin.py b/api/funkwhale_api/radios/admin.py
index 187950aeb2a011b7f332d493b97ba20622468efc..0cfd5d9250d0d417760e878324a1531fbac7f990 100644
--- a/api/funkwhale_api/radios/admin.py
+++ b/api/funkwhale_api/radios/admin.py
@@ -1,4 +1,4 @@
-from django.contrib import admin
+from funkwhale_api.common import admin
 
 from . import models
 
diff --git a/api/funkwhale_api/users/admin.py b/api/funkwhale_api/users/admin.py
index 365db615efe10518cc207dbd05fd657065a64b85..f7ee90c7e50a5f700e002eb062fbcc06ee9795f9 100644
--- a/api/funkwhale_api/users/admin.py
+++ b/api/funkwhale_api/users/admin.py
@@ -2,7 +2,7 @@
 from __future__ import absolute_import, unicode_literals
 
 from django import forms
-from django.contrib import admin
+from funkwhale_api.common import admin
 from django.contrib.auth.admin import UserAdmin as AuthUserAdmin
 from django.contrib.auth.forms import UserChangeForm, UserCreationForm
 from django.utils.translation import ugettext_lazy as _