A simple django admin allow your export queryset to xlsx file.
Project description
django-simple-export-admin
A simple django admin allow your export queryset to xlsx file.
Install
pip install django-simple-export-admin
Usage
pro/settings.py
INSTALLED_APPS = [
...
'django_static_fontawesome',
'django_changelist_toolbar_admin',
'django_simple_export_admin',
...
]
- django_static_fontawesome, django_changelist_toolbar_admin and django_simple_export_admin are required.
app/models.py
from django.db import models
class Book(models.Model):
name = models.CharField(max_length=32)
author = models.CharField(max_length=32)
is_published = models.NullBooleanField()
published_date = models.DateField(null=True)
class Meta:
permissions = [
("export_filtered_books", "Export all filtered books"),
]
app/admin.py
from django.contrib import admin
from django_simple_export_admin.admin import DjangoSimpleExportAdmin
from django_simple_export_admin.admin import NullBooleanRender
from django_simple_export_admin.admin import DateRender
from django_simple_export_admin.admin import Sum
from .models import Book
class BookAdmin(DjangoSimpleExportAdmin, admin.ModelAdmin):
list_display = ["name", "author"]
list_filter = ["is_published", "published_date", "author"]
django_simple_export_admin_exports = {
"filtered-books": {
"label": "Export All Filtered Books",
"icon": "fas fa-book",
"filename": "Book",
"fields": [
{"field": "__row_index", "label": "Index"},
{"field": "name", "label": "Book Name", "footer-value": "Sum:"},
{"field": "count", "label": "Stock", "footer-value": lambda: Sum()},
{"field": "author", "label": "Author", "empty_value": "-"},
{"field": "is_published", "label": "Is Published", "render": NullBooleanRender("UNKNOWN", "YES", "NO")},
{"field": "published_date", "label": "Published Date", "render": DateRender()},
],
"export-filtered": True,
"permissions": ["django_simple_export_admin_example.export_filtered_books"],
}
}
label
default to _("Export").icon
default to None means no icon.filename
default to model_name.export-filtered
default to False, means always export all queryset without filtering.permissions
default to None, means only super admin have permission to do exporting.fields
field == __row_index
will always display row index, e.g. 1,2,3...render
is a callable object that transform the original value to display value.empty_value
only works whenrender
is not provided, it is the display value for orignal None value.field
can be field of the model instance, callable function of the model instance, callable function of the admin which takes model instance parameter. Similar with field name inlist_display
.footer-value
is the value display at the bottom row. It can be an instance of Aggregate that accept every item value of this field and calc the final value at last. It can be a staic value.
Shipped Renders
- django_simple_export_admin.admin.DateRender
- django_simple_export_admin.admin.BooleanRender
- django_simple_export_admin.admin.NullBooleanRender
Shipped Aggregates
- django_simple_export_admin.admin.Sum
- django_simple_export_admin.admin.Average
- django_simple_export_admin.admin.Count
Releases
v0.1.2 2020/04/02
- Fix document.
v0.1.1 2020/04/02
- Fix footer-value problem. If use an instance of Aggregate in settings, the instance is used globally, so that the final value if not correct. So you must add lambda to dynamically to create a new instance very time.
v0.1.0 2020/04/02
- First release.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-simple-export-admin-0.1.2.tar.gz
.
File metadata
- Download URL: django-simple-export-admin-0.1.2.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab32cbd050a342b656433e6dd7635428e321276d2eb46b2398fbdae318a15910 |
|
MD5 | 3e21eb677b30d95cd36215774ae1ce2c |
|
BLAKE2b-256 | 1fc64f0f644e65aaa7e2c8493c8772a20f0b4ffef74399d25099f99263317286 |