I understand on how to pass a filter through views that have the return render(request, 'htmlname.html, {})
.
I don't know how to do it for this case of exporting data through django-import-export export option. I'd like to pass a filter from a dropdown selection for the data to be downloaded.
My view
def ExportStudentsView(request):
dataset = ExportStudentsResource().export(school = request.user.school,klass = ?????????)
response = HttpResponse(dataset.xls, content_type='application/vnd.ms-excel')
response['Content-Disposition'] = 'attachment; filename="All students.xls"'
return response
My resource
class ExportStudentsResource(resources.ModelResource):
def export(self, queryset = None, *args, **kwargs):#this method helps capture the current user school
queryset = Students.objects.filter(school = kwargs['school'],klass = kwargs['klass'])
return super(ExportStudentsResource, self).export(queryset, *args, **kwargs)
klass__name = fields.Field(attribute = 'klass__name',column_name='class')#Changes column name from school__name to school
stream__name = fields.Field(attribute = 'stream__name',column_name='stream')
gender__name = fields.Field(attribute = 'gender__name',column_name='gender')
class Meta:
model = Students
fields = ('adm','name','kcpe','klass__name','stream__name','gender__name','notes')
export_id_fields = ('adm',)
export_order = ('adm','name','kcpe','klass__name','stream__name','gender__name','notes')
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…