Link to repository: https://github.com/Arpaso/django-model-admin-helper
Provides classes to extend default django admin functionality:
- ButtonableModelAdmin
- ModelAdminWithForeignKeyLinksMetaclass - adds clickable foreign key links at admin interface in list view; Uses list_display fields to try adding link to the field in list item.
- AdminURLMixin - provides ability to extend /admin/ urls and make views to urls like: /admin/myurl.
admin.py:
from admin_helpers import ButtonableModelAdmin, AdminURLMixin, ModelAdminWithForeignKeyLinksMetaclass
class MyModelAdmin(AdminURLMixin, ButtonableModelAdmin):
__metaclass__ = ModelAdminWithForeignKeyLinksMetaclass
list_display = ('title', 'link_to_user') # user is a foreignkey field of the MyModel
def get_urls(self):
urls = super(MyModelAdmin, self).get_urls()
my_urls = patterns('',
(r'^my_view/$', self.my_view)
)
return my_urls + urls
def my_view(self, request):
# custom view which should return an HttpResponse
pass
Note: Notice that the custom patterns are included before the regular admin URLs: the admin URL patterns are very permissive and will match nearly anything, so you’ll usually want to prepend your custom URLs to the built-in ones. In this example, my_view will be accessed at /admin/myapp/mymodel/my_view/ (assuming the admin URLs are included at /admin/.)
Written by the development team of Arpaso company: http://arpaso.com