- August 25, 2009
- admin generic export csv action
- 7 (after 7 ratings)
A generic admin action to export selected objects as csv file. The csv file contains a first line with header information build from the models field names followed by the actual data rows.
Access is limited to staff users.
Add the code to your project, e.g. a file called actions.py in the project root.
Register the action in your apps admin.py:
from myproject.actions import export_as_csv class MyAdmin(admin.ModelAdmin): actions = [export_as_csv]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
import csv from django.core.exceptions import PermissionDenied from django.http import HttpResponse def export_as_csv(modeladmin, request, queryset): """ Generic csv export admin action. """ if not request.user.is_staff: raise PermissionDenied opts = modeladmin.model._meta response = HttpResponse(mimetype='text/csv') response['Content-Disposition'] = 'attachment; filename=%s.csv' % unicode(opts).replace('.', '_') writer = csv.writer(response) field_names = [field.name for field in opts.fields] # Write a first row with header information writer.writerow(field_names) # Write data rows for obj in queryset: writer.writerow([getattr(obj, field) for field in field_names]) return response export_as_csv.short_description = "Export selected objects as csv file"
More like this
- "Magic Link" Management Command by webology 3 weeks ago
- Closest ORM models to a latitude/longitude point by simonw 3 weeks ago
- Log the time taken to execute each DB query by kennyx46 3 weeks, 1 day ago
- django database snippet by ItsRLuo 3 weeks, 6 days ago
- Serialize a model instance by chriswedgwood 1 month, 3 weeks ago