Skip to main content

An admin action that allows you to export your models as CSV files without having to write a single line of code –besides installation, of course.

Features

  • Easy installation

  • High level of customizability

  • Created with permissions in mind

  • Sane defaults

Installation

  • Python 2.7, 3.3+

  • Django >= 1.5

To install:

pip install django-csv-exports

Next add django_exports to your INSTALLED_APPS to include the related css/js:

INSTALLED_APPS = (
    # Other apps here
    'django_csv_exports',
)

Configuration

There are two django settings that you can use to configure who can use the export action:

# Use if you want to check user level permissions only users with the can_csv_<model_label>
# will be able to download csv files.
DJANGO_EXPORTS_REQUIRE_PERM = True
# Use if you want to disable the global django admin action. This setting is set to True by default.
DJANGO_CSV_GLOBAL_EXPORTS_ENABLED = False

Fields to export

By default, all of the fields available in a model ar ordered and exported. You can override this behavior at the admin model level. Define the following attribute in your AdminModel:

class ClientAdmin(CSVExportAdmin):
    csv_fields = ['first_name', 'last_name', 'email', 'phone_number',]

Permission

There are two ways to limit who can export data as CSV files.

Model level permissions: create a new model permission and assign it only to user who should have access to the export action in the admin.

class Client(models.Model):
class Meta:

permissions = ((“can_csv_client”, “Can export list of clients as CSV file”),)

AdminModel Level permissions: define a has_csv_permission and return True if a user should have access:

class ClientAdmin(admin.AdminModel):
    search_fields = ('name', 'id', 'email')
    csv_fields = ['name', 'id']

    def has_csv_permission(self, request):
        """Only super users can export as CSV"""
        if request.user.is_superuser:
            return True

Selective Installation

Sometimes, you don’t want to allow all of your admin models to be exported. For this, you will need to set DJANGO_CSV_GLOBAL_EXPORTS_ENABLED to False, and have your AdminModels extend our CSVExportAdmin admin class:

from django_csv_exports.admin import CSVExportAdmin

class ClientAdmin(CSVExportAdmin):
    pass

Running the Tests

You can run the tests with via:

python setup.py test

or:

python runtests.py

Download files

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

Source Distribution

django-csv-exports-1.0.5.tar.gz (5.0 kB view details)

Uploaded Source

File details

Details for the file django-csv-exports-1.0.5.tar.gz.

File metadata

File hashes

Hashes for django-csv-exports-1.0.5.tar.gz
Algorithm Hash digest
SHA256 0630896a83ac7b27d09f88e191a662751866739482db0ef04ac328d061ff07e5
MD5 d33c9154e350ca2f296f13569330373a
BLAKE2b-256 1bb99467abe28a9fdf7d60832620670aaea635aa42727a1fbda5587110cb53f3

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.5 This release

1 file

1.0.4

1 file

1.0.3

1 file

1.0.2

1 file

1.0.1

1 file

1.0.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page