Parts of this are from Django Generic M2M by Charles Leifer <coleifer at gmail.com> https://github.com/coleifer/django-generic-m2m
Parts of this are from Django Generic M2M by Charles Leifer <coleifer at gmail.com> https://github.com/coleifer/django-generic-m2m