{ "info": { "author": "Gautam Kachru", "author_email": "gautam@live.in", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "django\\_lazy\\_admin\r\n===================\r\n\r\nDjango\u2019s automatic admin list screens are awesome! But sometimes you\r\nneed custom columns to display information that requires some big\r\nqueries or perhaps some heavy computation. This can slow down displaying\r\nthe entire list screen. This app is meant to address that need by\r\nconverting a custom column in to one that can be dynamically loaded over\r\nAJAX on user action.\r\n\r\nRegular custom column\r\n---------------------\r\n\r\nDjango allows you to use admin methods to render a column on the change\r\nlist screen. For example:\r\n\r\n.. code:: python\r\n\r\n class MyAdmin(admin.ModelAdmin):\r\n list_display = ('name', 'age', 'custom_column')\r\n\r\n def custom_column(self, obj):\r\n return foo_takes_time(obj)\r\n \r\n custom_column.short_description = 'Custom Title'\r\n\r\nLazy custom column\r\n------------------\r\n\r\nLazy custom columns are loaded over AJAX by user action. This is\r\nachieved by adding a decorator over any custom list column function\r\nyou\u2019ve added in your ModelAdmin class.\r\n\r\n.. code:: python\r\n\r\n from lazy_admin import lazy_admin_column\r\n\r\n class MyAdmin(admin.ModelAdmin):\r\n change_list_template = 'lazy_admin/change_list.html'\r\n \r\n list_display = ('name', 'age', 'custom_column')\r\n\r\n @lazy_admin_column\r\n def custom_column(self, obj):\r\n return foo_takes_time(obj)\r\n \r\n custom_column.short_description = 'Custom Title'\r\n\r\nNote the change\\_list\\_template of the MyAdmin class. This template\r\nloads the javascript necessary to handle the AJAX interaction.\r\n\r\nInstall\r\n-------\r\n\r\nIdeally, install the package in your virtual environment.\r\n\r\n::\r\n\r\n pip install django_lazy_admin\r\n\r\nNow, add the app to your django setting INSTALLED\\_APPS.\r\n\r\n.. code:: python\r\n\r\n INSTALLED_APPS = (\r\n '...',\r\n 'lazy_admin'\r\n )\r\n\r\nAnd, install the URL handler in your root url conf or in some other url\r\nconfiguration file.\r\n\r\n.. code:: python\r\n\r\n urlpatterns = patterns('',\r\n '...',\r\n url(r'^admin/lazy/', include('lazy_admin.urls')),\r\n )\r\n\r\nAnd, you\u2019re done!\r\n\r\nConfiguration\r\n-------------\r\n\r\nYou can turn off all lazy columns by the following in your main django\r\nsettings.py file.\r\n\r\n.. code:: python\r\n\r\n LAZY_ADMIN_ALLOW = False\r\n\r\nThe column content is rendered using the lazy\\_admin/lazy\\_column.html\r\ntemplate. You can over-ride this in your own app. Or you can use a\r\nparameter to the decorator.\r\n\r\n::\r\n\r\n @lazy_admin_column(template='my_custom_template.html')\r\n\r\nTODO\r\n----\r\n\r\n- Support Model class methods used as custom columns as well with the\r\n same decorator.\r\n\r\nAuthors\r\n-------\r\n\r\nThe primary author of this package is Gautam Kachru gautam@live.in\r\n\r\nLicense\r\n-------\r\n\r\nBSD 3-clause. See LICENSE file.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/gkachru/django_lazy_admin", "keywords": "", "license": "BSD License", "maintainer": "", "maintainer_email": "", "name": "django_lazy_admin", "package_url": "https://pypi.org/project/django_lazy_admin/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django_lazy_admin/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/gkachru/django_lazy_admin" }, "release_url": "https://pypi.org/project/django_lazy_admin/1.0.1/", "requires_dist": null, "requires_python": null, "summary": "Enhancement for custom columns in django admin list screens", "version": "1.0.1" }, "last_serial": 1251615, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "6f83d321907695dac3ef7bc8490eac22", "sha256": "6b3557969051a07e0d4936112158dbf370cbd15e42238f12923ee3abbc096030" }, "downloads": -1, "filename": "django_lazy_admin-1.0.1.tar.gz", "has_sig": false, "md5_digest": "6f83d321907695dac3ef7bc8490eac22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5555, "upload_time": "2014-09-24T14:42:02", "url": "https://files.pythonhosted.org/packages/34/e2/3fe7c48e2cb272f02e5f8b215503e3b6c1e29cf775baa84c3162fcf16118/django_lazy_admin-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6f83d321907695dac3ef7bc8490eac22", "sha256": "6b3557969051a07e0d4936112158dbf370cbd15e42238f12923ee3abbc096030" }, "downloads": -1, "filename": "django_lazy_admin-1.0.1.tar.gz", "has_sig": false, "md5_digest": "6f83d321907695dac3ef7bc8490eac22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5555, "upload_time": "2014-09-24T14:42:02", "url": "https://files.pythonhosted.org/packages/34/e2/3fe7c48e2cb272f02e5f8b215503e3b6c1e29cf775baa84c3162fcf16118/django_lazy_admin-1.0.1.tar.gz" } ] }