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