Skip to main content

No project description provided

Project description

Overview

django-export-celery is a Django application that enables long processing exports using celery and django-import-export

Dependencies

Python 3.6+

Packages

Django>=3.1
celery>=5.0.0
django-import-export>=2.2.0

Installation and Configuration

Celery must be setup before starting.
Please refer to Using Celery with Django for more information.

  1. Install with pip
pip install django-export-celery
  1. Add apps to INSTALLED_APPS to project settings.
# settings.py
INSTALLED_APPS = (
    ...
    'import_export',
    'django_export_celery',
)

# Optionally, sending emails is enabled by default on completed export
# Disable it by setting to False
DJANGO_EXPORT_CELERY_ENABLE_EMAIL = False
  1. Setup model and resources
# apps/models.py
from django.db import models
from import_export.resources import ModelResource


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

    @staticmethod
    def get_export_resources():
        return {
            'rsc1': ('Question', QuestionResource),
        }


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)


class QuestionResource(ModelResource):
    class Meta:
        model = Question
  1. Add ExportCeleryMixin to admin view in admin.py
# apps/admin.py
from django.contrib import admin
from .models import Question, Choice
from import_export.admin import ImportExportMixin
from django_export_celery.mixins import ExportCeleryMixin


@admin.register(Question)
class QuestionAdmin(ExportCeleryMixin, admin.ModelAdmin):
    list_display = (
        'question_text',
        'pub_date',
    )

# also supports django-import-export admin mixins like so
@admin.register(Choice)
class ChoiceAdmin(ImportExportMixin, ExportCeleryMixin, admin.ModelAdmin):
    list_display = (
        'question',
        'choice_text',
        'votes',
    )

How to use

  1. Click EXPORT button in upper right in model view

image-1

  1. Select export Format and click SUBMIT

image-2

  1. Export jobs can be found in the Export Jobs app along with job status and file link

image-3

Demo App

./project/ contains the necessary files to start a sample project

To get started

cd project
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver 8000

TODO: dummy data setup

TODO: Docker setup

Known Issues

A list of known issues to be patched in the future

  • Does not respect ordering when exporting
  • File format ods is not supported

Issue Tracker

If you have any bugs, suggestions, or compliants please report an issue here

References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-export-celery-0.3.2.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

django_export_celery-0.3.2-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file django-export-celery-0.3.2.tar.gz.

File metadata

  • Download URL: django-export-celery-0.3.2.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.4

File hashes

Hashes for django-export-celery-0.3.2.tar.gz
Algorithm Hash digest
SHA256 6a82705a100afa1039f423fe5687efb3e9811e879010306071ba1b030ba99826
MD5 731f2476c1afacee15eb2fdff29ce5ce
BLAKE2b-256 ac62663d90f28645b4d4b6e2911f5933ddf0e5b354acacbe277ecce09ad8604b

See more details on using hashes here.

File details

Details for the file django_export_celery-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: django_export_celery-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.4

File hashes

Hashes for django_export_celery-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a3e66836fc9a9cdd726c3b46c081d8388f51e05f43dd7c60995d7797cab20c53
MD5 a4f350d973a4c620bc269c7dd00d1e05
BLAKE2b-256 9321dbbab81bca5fe587de241b72f976751cdc020b6e11945e29b142bb98b47d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page