django-export-csv is a reusable Django application which provides generic View class for creating and rendering CSV.
Project description
django-export-csv
django-export-csv is a reusable Django application for which provides generic views for downloading CSV files.
Installation
To get started using django-export-csv simply install it with
pip install django-csv-export
Usage
Add 'export_csv' to INSTALLED_APPS settings of the project.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
...
...
'export_csv',
]
Subclass ExportCSV in views.py file and provide model attribute.
from export_csv.views import ExportCSV
from .models import Account
class AccountCSV(ExportCSV):
"""View for creating and rendering CSV of all Account model instances."""
model = Customer
In urls.py, add url pointing to the view class AccountCSV declared above.
from .views import AccountCSV
urlpatterns = [
(r'^account_csv/$', AccountCSV.as_view(), name='account-csv'),
]
That’s it. It will render a CSV file containing all the fields of all the instances of Account model.
Customizing ExportCSV View
Use custom queryset
By default, all instances of the model are included in (the queryset and) the CSV.
To provide a custom queryset, override get_queryset method to return custom queryset.
class AccountCSV(ExportCSV):
model = Account
def get_queryset(self):
return Account.object.filter(is_active=True)
Only include certain fields of the model
It is possible that only some fields of the model are needed.
This can be achieved in two ways:
provide field_names list
override get_field_names method
class AccountCSV(ExportCSV):
model = Account
field_names = ['owner', 'account_no', 'balance']
class AccountCSV(ExportCSV):
model = Account
def get_field_names(self):
return ['owner', 'account_no', 'balance']
Provide filename
By default, the CSV rendered will have filename <model>_list.csv. For example, for Account model the filename will be account_list.csv.
Custom file name can be provided using two ways.
provide filename attribute
Override get_filename method.
class AccountCSV(ExportCSV):
model = Account
filename = 'active_account_list.csv'
def get_queryset(self):
return Account.object.filter(is_active=True)
class AccountCSV(ExportCSV):
model = Account
def get_queryset(self):
return Account.object.filter(is_active=True)
def get_filename(self):
return 'active_account_list.csv'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django_csv_export-0.0.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f61001316e25f98432cba911a8158ca8386d476cff412d5cfc8574f60cca2b8 |
|
MD5 | 16b4ab05eaf3c23d4319f6edea8033ed |
|
BLAKE2b-256 | 0e4f771a05f3cf50b98c489761487b0f7f6b96b5158a17707fabd4839dcaf287 |