Allow foreign key attributes in Django admin change list list_display
with '__'
This is based on DjangoSnippet 2996 which was made by Kpacn.
This library is on PyPI so you can install it with:
pip install django-related-admin
or from github:
pip install git+https://github.com/PetrDlouhy/django-related-admin#egg=django-related-admin
Add "related_admin" to your INSTALLED_APPS setting like this:
INSTALLED_APPS = ( ... 'related_admin', 'django.contrib.admin', )
Note: Django-related-admin changes change_list.html
template to disable white-space: nowrap;
css class on admin headers to allow long (posibly related) header names to wrap.
If you want this behaviour, add the app before django.contrib.admin
, otherwise after.
Just use it instead of model.Admin:
from related_admin import RelatedFieldAdmin from related_admin import getter_for_related_field class FooAdmin(RelatedFieldAdmin): # these fields will work automatically (and boolean fields will display an icon): list_display = ('address__phone','address__country__country_code','address__foo') # ... but you can also define them manually if you need to override short_description or boolean parameter: address__foo = getter_for_related_field('address__foo', short_description='Custom Name', boolean=True)