From aff4debd79dc2dd67cd141c7a23e889316ca74c7 Mon Sep 17 00:00:00 2001 From: pierre geeraert Date: Sun, 21 Jun 2026 19:52:22 +0100 Subject: [PATCH] add import/export --- django_code/apps/random_simpsons/admin.py | 5 ++- .../migrations/0002_author_category_book.py | 41 +++++++++++++++++++ django_code/apps/random_simpsons/models.py | 2 +- django_code/django_code/settings.py | 5 ++- 4 files changed, 48 insertions(+), 5 deletions(-) create mode 100644 django_code/apps/random_simpsons/migrations/0002_author_category_book.py diff --git a/django_code/apps/random_simpsons/admin.py b/django_code/apps/random_simpsons/admin.py index 40d0543..4b27f84 100644 --- a/django_code/apps/random_simpsons/admin.py +++ b/django_code/apps/random_simpsons/admin.py @@ -1,7 +1,8 @@ from django.contrib import admin,messages from django.utils.translation import ngettext from .models import SimpsonsData,simpsons_data_object - +from import_export import resources +from import_export.admin import ImportExportModelAdmin # Register your models here. DB = 'simpsons_db' @@ -39,7 +40,7 @@ def create_entry(modeladmin, request, queryset): simpsons_data_object.create(season=2, episode=3, url="google.com", seen=True) @admin.register(SimpsonsData) -class EpisodeAdmin(admin.ModelAdmin): +class EpisodeAdmin(ImportExportModelAdmin): list_display = ('season', 'episode', 'url', 'seen') list_filter = ['seen'] fields = ['season', 'episode', 'url', 'seen'] diff --git a/django_code/apps/random_simpsons/migrations/0002_author_category_book.py b/django_code/apps/random_simpsons/migrations/0002_author_category_book.py new file mode 100644 index 0000000..c2630f5 --- /dev/null +++ b/django_code/apps/random_simpsons/migrations/0002_author_category_book.py @@ -0,0 +1,41 @@ +# Generated by Django 4.2.29 on 2026-06-21 18:21 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('simpsons', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Author', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ], + ), + migrations.CreateModel( + name='Category', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ], + ), + migrations.CreateModel( + name='Book', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100, verbose_name='Book name')), + ('author_email', models.EmailField(blank=True, max_length=75, verbose_name='Author email')), + ('imported', models.BooleanField(default=False)), + ('published', models.DateField(blank=True, null=True, verbose_name='Published')), + ('price', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True)), + ('author', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='simpsons.author')), + ('categories', models.ManyToManyField(blank=True, to='simpsons.category')), + ], + ), + ] diff --git a/django_code/apps/random_simpsons/models.py b/django_code/apps/random_simpsons/models.py index 659628d..9055c20 100644 --- a/django_code/apps/random_simpsons/models.py +++ b/django_code/apps/random_simpsons/models.py @@ -9,4 +9,4 @@ class SimpsonsData(models.Model): class Meta: db_table = 'episodes' -simpsons_data_object = SimpsonsData.objects.using('simpsons_db') \ No newline at end of file +simpsons_data_object = SimpsonsData.objects.using('simpsons_db') diff --git a/django_code/django_code/settings.py b/django_code/django_code/settings.py index 045bbdd..2a02edf 100644 --- a/django_code/django_code/settings.py +++ b/django_code/django_code/settings.py @@ -45,6 +45,7 @@ INSTALLED_APPS = [ 'django_hosts', 'apps.cloudmanager.apps.CloudmanagerConfig', 'apps.random_simpsons.apps.RandomSimpsonsConfig', + 'import_export', ] MIDDLEWARE = [ @@ -115,8 +116,8 @@ DATABASES = { 'PORT': os.environ.get('DB_PORT'), }, } -#DATABASE_ROUTERS = ['django_code.routers.ProjectDatabaseRouter'] -DATABASE_ROUTERS = [] +DATABASE_ROUTERS = ['django_code.routers.ProjectDatabaseRouter'] +#DATABASE_ROUTERS = [] # Password validation # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators