def test_export_as_csv(self): """ Download a CSV with all of the fields in a model. ForeignKeys are ID's (for now), and ManyToManys are a quoted comma separated list """ permission1 = Permission.objects.get(id=1) permission2 = Permission.objects.get(id=2) group1 = Group(name="Group 1") group1.save() group1.permissions.add(permission1) group1.permissions.add(permission2) group2 = Group(name="Group 2") group2.save() group2.permissions.add(permission1) # test request request_factory = RequestFactory() req = request_factory.get('/admin/auth/user/') response = export_as_csv(modeladmin=group1.__class__, request=req, queryset=Group.objects.all(), export_type="D") expected_response = 'id,name,permissions\r\n1,Group 1,"1,2,"\r\n2,Group 2,"1,"' self.assertContains(response, expected_response)
def test_export_fk_as_id(self): """ CSVs should (by default) export FKs as IDs, not titles """ from nomnom.tests.models import Instructor request_factory = RequestFactory() req = request_factory.get('/admin/test/instructor/') response = export_as_csv(modeladmin=self.instructor1.__class__, request=req, queryset=Instructor.objects.all(), export_type="D") expected_response = 'department,title,id,name,courses\r\n1,Capt.,1,James Kirk,\r\n2,Dr.,2,Peter Venkman,' self.assertContains(response, expected_response)
def export_view(request, app_label, model_name, export_type): modelToExport = get_model(app_label, model_name) return export_as_csv(modelToExport, request, modelToExport.objects.all(), export_type)