[PYTHON] Ajoutez la fonction d'exportation CSV à l'écran de gestion avec django-import-export

Site d'administration de Django, il semble qu'il y ait différents plug-ins lorsque je le vérifie.

Je voulais importer / exporter les données sur l'écran de gestion dans un format tel que CSV, donc Quand je l'ai recherché, je pourrais facilement le faire avec django-import-export. Un mémorandum à l'époque.

Installation

Première installation avec pip

$ pip install django-import-export
Réglage

Ajout de ʻimport_export` à INSTALLED_APPS

# settings.py
INSTALLED_APPS = (
    ...
    'import_export',
)
Ajouter à admin.py

Ajoutez des paramètres pour les données cibles.

Le modèle d'exemple ressemble à ceci.

# models.py
class Book(models.Model):
    name = models.CharField('Book name', max_length=100)
    author = models.CharField('Book name', max_length=100)

Paramètres django-import-export.

Ajoutez une classe qui hérite de ModelResource pour le modèle cible. Il semble que les éléments liés à la configuration seront écrits ici.

# admin.py
from django.contrib import admin
from import_export import resources
from import_export.admin import ImportExportModelAdmin

from .models import Book

class BookResource(resources.ModelResource):
    #Django pour modèle-import-paramètres d'exportation
    class Meta:
        model = Book


@admin.register(Book)
class BookAdmin(ImportExportModelAdmin):
    #Utiliser ImportExportModelAdmin
    ordering = ['id']
    list_display = ('id', 'title', 'author')

    # django-import-exporte les paramètres
    resource_class = BookResource

Enfin, préparez une classe Admin qui hérite de ImportExportModelAdmin, Si vous définissez resource_class sur une classe qui hérite de ModelResource, c'est OK!

Ensuite, le bouton s'affiche comme ceci. Facile (* ´ω ` *)

スクリーンショット 2019-11-27 13.38.26.png

Petite histoire

Exporter uniquement: désactiver l'importation

Je pensais que je n'avais pas besoin de l'importation séparément, je l'ai donc désactivée. Il semble que seul «Export Mixin» devrait être utilisé.

# ...Abréviation
from import_export.admin import ExportMixin

@admin.register(Book)
class BookAdmin(ExportMixin, admin.ModelAdmin):
    #Admin à ExportMixin.OK si vous l'ajoutez à ModelAdmin
    ordering = ['id']
    list_display = ('id', 'title', 'author')

    # django-import-exporte les paramètres
    resource_class = BookResource
Spécifiez le format qui peut être exporté

Par défaut, vous pouvez choisir JSON ou YML, mais vous n'avez besoin que de CSV, donc J'ai réduit les parties qui peuvent être sélectionnées. OK si vous spécifiez des formats

# ...Abréviation
from import_export.formats import base_formats

@admin.register(Book)
class BookAdmin(ImportExportModelAdmin):
    ordering = ['id']
    list_display = ('id', 'title', 'author')

    # django-import-exporte les paramètres
    resource_class = BookResource
    formats = [base_formats.CSV] #Peut être spécifié dans les formats

c'est tout!!

Je fais quelque chose comme ça !!

Nous avons publié "Loading How Match", une application de gestion de lecture pour l'empilement! Reading How Match est développé avec Nuxt.js + Firebase!

Si vous le souhaitez, veuillez jouer ヽ (= ´ ▽ `=) ノ

Si vous avez des demandes, des impressions, des conseils, etc. Sur le compte officiel (@MemoryLoverz) et le développeur (@kira_puka) ♪

Site référencé

Recommended Posts

Ajoutez la fonction d'exportation CSV à l'écran de gestion avec django-import-export
Essayez d'utiliser django-import-export pour ajouter des données csv à django
Écrire en csv avec Python
Ajouter des champs à des entités avec ArcPy
[Python] Ecrire dans un fichier csv avec Python
Gérer les fichiers csv avec Django (django-import-export)
Sortie vers un fichier csv avec Python
Excel, import / export csv avec Django
J'ai essayé de créer le téléchargement CSV, le traitement des données, la fonction de téléchargement avec Django
Comment ajouter un package avec PyCharm
Convertir de PDF en CSV avec pdfplumber
Ajouter des images à des photos iOS avec Pythonista
Lire Python csv et exporter vers txt
[Part1] Scraping avec Python → Organisez jusqu'à csv!
Ajouter du bruit gaussien aux images avec python2.7
Comment créer des exemples de données CSV avec hypothèse
Grattage de la nourriture avec python et sortie en CSV
Ajoutez votre fonction d'affichage préférée à la recherche de pip
Ajouter des lignes à un tableau vide avec numpy
Exporter un instantané RDS vers S3 avec Lambda (Python)
Écrire des données CSV sur AWS-S3 avec AWS-Lambda + Python
Ajouter / supprimer un noyau pour utiliser jupyter avec venv
Sortez la docstring de la fonction de test dans le rapport avec pytest-html