class ExportAdmin(admin.ModelAdmin):
change_list_template = 'admin/export/change_list.html'
+ actions = ['export_csv', 'export_ods']
def changelist_view(self, request, extra_context=None):
"""
return export_fields
- def export_ods(self, request):
+ def export_ods(self, request, queryset=None):
"""
Generate HTTP response as ODS file from export_fields property.
"""
export_fields = self.get_export_fields()
- qs = self.queryset(request)
+ if queryset is None:
+ queryset = self.queryset(request)
response = HttpResponse(mimetype='application/vnd.oasis.opendocument.spreadsheet')
response['Content-Disposition'] = 'attachment; filename=%s.ods' % unicode(self.model._meta.verbose_name_plural)
p = P(stylename = style, text = txt(item))
tc.addElement (p)
- for o in qs:
+ for o in queryset:
tr = TableRow ()
table.addElement (tr)
response.write(buffer.getvalue())
return response
- def export_csv(self, request):
+ def export_csv(self, request, queryset=None):
"""
Generate HTTP response as CSV file from export_fields property.
"""
csv_fields = self.get_export_fields()
- qs = self.queryset(request)
+ if queryset is None:
+ queryset = self.queryset(request)
response = HttpResponse(mimetype='text/csv')
response['Content-Disposition'] = 'attachment; filename=%s.csv' % unicode(self.model._meta.verbose_name_plural)
headers.append(attr.encode('utf-8') if isinstance(attr, unicode) else attr)
writer.writerow(headers)
- for o in qs:
+ for o in queryset:
row = []
for attr in csv_fields:
value = self.get_object_value(o, attr)