Skip to content

a CSV exporter for django querysets

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

angebouabre/django-queryset-csv

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

100 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

https://travis-ci.org/azavea/django-queryset-csv.png https://coveralls.io/repos/azavea/django-queryset-csv/badge.png https://pypip.in/v/django-queryset-csv/badge.png https://pypip.in/d/django-queryset-csv/badge.png https://pypip.in/license/django-queryset-csv/badge.png

a CSV exporter for django querysets.

This tool was created out of repeatedly needing to do the following in django:

  1. write CSV data that is based on simple querysets.
  2. automatically encode unicode characters to utf-8
  3. create a shortcut to render a queryset to a CSV HTTP response
  4. add a time/datestamping mechanism to CSV filenames

For more detailed documentation, please read this blog post.

installation

Run:

pip install django-queryset-csv

Supports Python 2.6 and 2.7, Django 1.5 and 1.6.

usage

Perform all filtering and field authorization in your view using .filter() and .values(). Then, use render_to_csv_response to turn a queryset into a respone with a CSV attachment. Pass it a QuerySet or ValuesQuerySet instance:

from djqscsv import render_to_csv_response

def csv_view(request):
  qs = Foo.objects.filter(bar=True).values('id', 'bar')
  return render_to_csv_response(qs)

foreign keys

Foreign keys are supported natively using ValuesQuerySet in Django. Simply use the __ technique as you would in the Django ORM when you pass args to the .values() method.

models.py:

from django.db import models

class Food(models.Model):
    name = models.CharField(max_length=20)

class Person(models.Model):
    name = models.CharField(max_length=20)
    favorite_food = models.ForeignKey(Food)

views.py:

from djqscsv import render_to_csv_response

def csv_view(request):
    people = Person.objects.values('name', 'favorite_food__name')
    return render_to_csv_response(people)

About

a CSV exporter for django querysets

Resources

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
COPYING

Stars

Watchers

Forks

Packages

No packages published