mirror of
https://github.com/nikdoof/test-auth.git
synced 2025-12-14 06:42:16 +00:00
Added utility script to export as CSV
This commit is contained in:
38
utils.py
Normal file
38
utils.py
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
import csv
|
||||||
|
from django.db.models.loading import get_model
|
||||||
|
|
||||||
|
def dump(qs, outfile_path):
|
||||||
|
"""
|
||||||
|
Takes in a Django queryset and spits out a CSV file.
|
||||||
|
|
||||||
|
Usage::
|
||||||
|
|
||||||
|
>> from utils import dump2csv
|
||||||
|
>> from dummy_app.models import *
|
||||||
|
>> qs = DummyModel.objects.all()
|
||||||
|
>> dump2csv.dump(qs, './data/dump.csv')
|
||||||
|
|
||||||
|
Based on a snippet by zbyte64::
|
||||||
|
|
||||||
|
http://www.djangosnippets.org/snippets/790/
|
||||||
|
|
||||||
|
"""
|
||||||
|
model = qs.model
|
||||||
|
writer = csv.writer(open(outfile_path, 'w'))
|
||||||
|
|
||||||
|
headers = []
|
||||||
|
for field in model._meta.fields:
|
||||||
|
headers.append(field.name)
|
||||||
|
writer.writerow(headers)
|
||||||
|
|
||||||
|
for obj in qs:
|
||||||
|
row = []
|
||||||
|
for field in headers:
|
||||||
|
val = getattr(obj, field)
|
||||||
|
if callable(val):
|
||||||
|
val = val()
|
||||||
|
if type(val) == unicode:
|
||||||
|
val = val.encode("utf-8")
|
||||||
|
row.append(val)
|
||||||
|
writer.writerow(row)
|
||||||
|
|
||||||
Reference in New Issue
Block a user