Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Enhancement for custom columns in django admin list screens

Project Description

Django’s automatic admin list screens are awesome! But sometimes you need custom columns to display information that requires some big queries or perhaps some heavy computation. This can slow down displaying the entire list screen. This app is meant to address that need by converting a custom column in to one that can be dynamically loaded over AJAX on user action.

Regular custom column

Django allows you to use admin methods to render a column on the change list screen. For example:

class MyAdmin(admin.ModelAdmin):
    list_display = ('name', 'age', 'custom_column')

    def custom_column(self, obj):
        return foo_takes_time(obj)

    custom_column.short_description = 'Custom Title'

Lazy custom column

Lazy custom columns are loaded over AJAX by user action. This is achieved by adding a decorator over any custom list column function you’ve added in your ModelAdmin class.

from lazy_admin import lazy_admin_column

class MyAdmin(admin.ModelAdmin):
    change_list_template = 'lazy_admin/change_list.html'

    list_display = ('name', 'age', 'custom_column')

    def custom_column(self, obj):
        return foo_takes_time(obj)

    custom_column.short_description = 'Custom Title'

Note the change_list_template of the MyAdmin class. This template loads the javascript necessary to handle the AJAX interaction.


Ideally, install the package in your virtual environment.

pip install django_lazy_admin

Now, add the app to your django setting INSTALLED_APPS.


And, install the URL handler in your root url conf or in some other url configuration file.

urlpatterns = patterns('',
    url(r'^admin/lazy/', include('lazy_admin.urls')),

And, you’re done!


You can turn off all lazy columns by the following in your main django file.


The column content is rendered using the lazy_admin/lazy_column.html template. You can over-ride this in your own app. Or you can use a parameter to the decorator.



  • Support Model class methods used as custom columns as well with the same decorator.


The primary author of this package is Gautam Kachru


BSD 3-clause. See LICENSE file.

Release History

Release History

This version
History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django_lazy_admin-1.0.1.tar.gz (5.6 kB) Copy SHA256 Checksum SHA256 Source Sep 24, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting