signal post_import, post_export
This commit is contained in:
parent
869d4857c4
commit
2e3ece0835
1
AUTHORS
1
AUTHORS
|
@ -69,3 +69,4 @@ The following is a list of much appreciated contributors:
|
|||
* jbradberry (Jeff Bradberry)
|
||||
* antoniablair
|
||||
* kellerkind
|
||||
* yueyoum (Johnnie Wang)
|
||||
|
|
|
@ -271,6 +271,25 @@ that have their column ``delete`` set to ``1``::
|
|||
model = Book
|
||||
|
||||
|
||||
Signals
|
||||
=======
|
||||
|
||||
To hook in the import export workflow, you can connect to ``post_import``, ``post_export`` signals:
|
||||
|
||||
from django.dispatch import receiver
|
||||
from import_export.signals import post_import, post_export
|
||||
|
||||
@receiver(post_import, dispatch_uid='balabala...')
|
||||
def _post_import(model, **kwargs):
|
||||
# model is the actual model instance which after import
|
||||
pass
|
||||
|
||||
@receiver(post_export, dispatch_uid='balabala...')
|
||||
def _post_export(model, **kwargs):
|
||||
# model is the actual model instance which after export
|
||||
pass
|
||||
|
||||
|
||||
.. _admin-integration:
|
||||
|
||||
Admin integration
|
||||
|
|
|
@ -29,6 +29,7 @@ from .resources import (
|
|||
from .formats import base_formats
|
||||
from .results import RowResult
|
||||
from .tmp_storages import TempFolderStorage
|
||||
from .signals import post_export, post_import
|
||||
|
||||
try:
|
||||
from django.utils.encoding import force_text
|
||||
|
@ -190,6 +191,8 @@ class ImportMixin(ImportExportMixinBase):
|
|||
messages.success(request, success_message)
|
||||
tmp_storage.remove()
|
||||
|
||||
post_import.send(sender=None, model=self.model)
|
||||
|
||||
url = reverse('admin:%s_%s_changelist' % self.get_model_info(),
|
||||
current_app=self.admin_site.name)
|
||||
return HttpResponseRedirect(url)
|
||||
|
@ -364,6 +367,8 @@ class ExportMixin(ImportExportMixinBase):
|
|||
response['Content-Disposition'] = 'attachment; filename=%s' % (
|
||||
self.get_export_filename(file_format),
|
||||
)
|
||||
|
||||
post_export.send(sender=None, model=self.model)
|
||||
return response
|
||||
|
||||
context = {}
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
from django.dispatch import Signal
|
||||
|
||||
post_export = Signal(providing_args=["model"])
|
||||
post_import = Signal(providing_args=["model"])
|
Loading…
Reference in New Issue