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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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