Skip to content

Commit 69ec0a5

Browse files
authored
Merge pull request #69 from xalien10/ft/customise-export-queryset
Ft/customise export queryset
2 parents 7f1b2b2 + d52a8b6 commit 69ec0a5

File tree

3 files changed

+11
-0
lines changed

3 files changed

+11
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ example/django-import-export-celery-export-jobs/
1010
pipenv/
1111
django_import_export_celery.egg-info/
1212
db/
13+
.idea/

example/winners/models.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ class WinnersResource(ModelResource):
2727
class Meta:
2828
model = Winner
2929

30+
def get_export_queryset(self):
31+
"""To customise the queryset of the model resource with annotation override"""
32+
return self.Meta.model.objects.all()
33+
3034

3135
class WinnersWithAllCapsResource(WinnersResource):
3236
name_all_caps = Field()

import_export_celery/models/exportjob.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,12 @@ def get_content_type(self):
100100

101101
def get_queryset(self):
102102
pks = json.loads(self.queryset)
103+
# If customised queryset for the model exists
104+
# then it'll apply filter on that otherwise it'll
105+
# apply filter directly on the model.
106+
resource_class = self.get_resource_class()
107+
if hasattr(resource_class, "get_export_queryset"):
108+
return resource_class().get_export_queryset().filter(pk__in=pks)
103109
return self.get_content_type().model_class().objects.filter(pk__in=pks)
104110

105111
def get_resource_choices(self):

0 commit comments

Comments
 (0)