Ensure we always use raw_ids for related fields in django's admin

This commit is contained in:
Eliot Berriot 2018-10-01 21:56:52 +02:00
parent 8d75d58e82
commit 3895034089
No known key found for this signature in database
GPG Key ID: DD6965E2476E5C27
9 changed files with 27 additions and 8 deletions

View File

@ -5,7 +5,7 @@ from django.conf import settings
from django.conf.urls import url from django.conf.urls import url
from django.urls import include, path from django.urls import include, path
from django.conf.urls.static import static 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 from django.views import defaults as default_views

View File

@ -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

View File

@ -1,4 +1,4 @@
from django.contrib import admin from funkwhale_api.common import admin
from . import models from . import models

View File

@ -1,4 +1,4 @@
from django.contrib import admin from funkwhale_api.common import admin
from . import models from . import models
from . import tasks from . import tasks

View File

@ -1,4 +1,4 @@
from django.contrib import admin from funkwhale_api.common import admin
from . import models from . import models

View File

@ -1,4 +1,4 @@
from django.contrib import admin from funkwhale_api.common import admin
from . import models from . import models

View File

@ -1,4 +1,4 @@
from django.contrib import admin from funkwhale_api.common import admin
from . import models from . import models

View File

@ -1,4 +1,4 @@
from django.contrib import admin from funkwhale_api.common import admin
from . import models from . import models

View File

@ -2,7 +2,7 @@
from __future__ import absolute_import, unicode_literals from __future__ import absolute_import, unicode_literals
from django import forms 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.admin import UserAdmin as AuthUserAdmin
from django.contrib.auth.forms import UserChangeForm, UserCreationForm from django.contrib.auth.forms import UserChangeForm, UserCreationForm
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _