Utilities for working with CSVs in Django
Project description
Contains helpers for CSV interaction.
There are two primary uses:
Running an import command with a list of importers
Exporting a streaming CSV response export
Example import:
from django_csv_utils import CSVImportException, ImportCommand, Importer
from users.models import User
class UserImporter(Importer):
"""Imports User objects from a CSV."""
header = [
"first_name",
"last_name",
"email",
]
def import_row(self, row):
errors = []
first_name = row.get("first_name", "")
last_name = row.get("last_name", "")
email = self.get_str_errblank(row, "email", errors).lower()
if User.objects.filter(email=email).exists():
errors.append("The email {} is already in use".format(email))
if errors:
raise CSVImportException(', '.join([str(e) for e in errors]))
new_user = User.objects.create(
email=email, first_name=first_name, last_name=last_name)
return "Imported {0}".format(new_user.get_full_name())
class Command(ImportCommand):
imports = {'users': UserImporter}
Example StreamingHTTPResponse:
from django_csv_utils import StreamingCSVView
from users.models import User
class UserCSVView(StreamingCSVView):
"""Give the list of users."""
header = [
'fist_name',
'last_name',
'email',
]
def get_queryset(self):
"""Return the right list of users."""
return User.objects.filter(is_active=True, is_superuser=False)
def get_row(self, item):
return (
item.first_name,
item.last_name,
item.email,
)
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
django-csv-utils-1.0.2.tar.gz
(5.9 kB
view hashes)
Built Distribution
Close
Hashes for django_csv_utils-1.0.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b417b377e442c5ff9e28d9c658feb43c1d26743e719f096e188e95f34e99a04d |
|
MD5 | 87c0ee3582ca390678af50166f29ec15 |
|
BLAKE2b-256 | a85614170511e7703754cacbdd7cc4dbabfae8498999ea910d6579b54536bd7a |