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

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