46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
| import csv
 | |
| 
 | |
| from django.contrib import admin
 | |
| from django.http import HttpResponse
 | |
| 
 | |
| from .models import Project, HonoraryCertificate, Library, IFG, Travel,\
 | |
|                     Email, BusinessCard, List
 | |
| 
 | |
| 
 | |
| def export_as_csv(self, request, queryset):
 | |
| 
 | |
|     meta = self.model._meta
 | |
|     field_names = [field.name for field in meta.fields]
 | |
| 
 | |
|     response = HttpResponse(content_type='text/csv')
 | |
|     response['Content-Disposition'] = 'attachment; filename={}.csv'.format(meta)
 | |
|     writer = csv.writer(response)
 | |
| 
 | |
|     writer.writerow(field_names)
 | |
|     for obj in queryset:
 | |
|         row = writer.writerow([getattr(obj, field) for field in field_names])
 | |
| 
 | |
|     return response
 | |
| 
 | |
| export_as_csv.short_description = "Export Selected"
 | |
| 
 | |
| admin.site.add_action(export_as_csv)
 | |
| 
 | |
| @admin.register(Project)
 | |
| class ProjectAdmin(admin.ModelAdmin):
 | |
|     save_as = True
 | |
|     readonly_fields = ('pid',)
 | |
|     #    action = ['export_as_csv']
 | |
| 
 | |
| 
 | |
| 
 | |
| admin.site.register([
 | |
|                      HonoraryCertificate,
 | |
|                      Library,
 | |
|                      IFG,
 | |
|                      Travel,
 | |
|                      Email,
 | |
|                      BusinessCard,
 | |
|                      List
 | |
|                      ])
 |