Django Admin - Dynamically pick list_display fields (user defined)

Some of my models have a lot of fields and the user may not need to see all of them at any given point in time. I am trying to add functionality to allow the user to select which fields are displayed from the front end without having to change the list_display definition in the admin.py file. I also don't want to just dump all of the fields out there for them either.

I am hoping someone may be able to point me at something on github or give me some advice on how to go about doing this.

Thanks in advance.