20 lines
620 B
Python
20 lines
620 B
Python
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
|