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)
Author: PetrDlouhy
Source: https://github.com/PetrDlouhy/django-related-admin
License: BSD-3-Clause license