From 0fed3eba8ba36395046da1c2f52d3e7b6b968de0 Mon Sep 17 00:00:00 2001 From: erichhasl Date: Tue, 10 Jul 2018 19:05:26 +0200 Subject: [PATCH] add populate db from excel script --- .../meingoethopia/management/__init__.py | 0 .../management/commands/__init__.py | 0 .../management/commands/from_excel.py | 28 +++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 web_dev/sas_web/meingoethopia/management/__init__.py create mode 100644 web_dev/sas_web/meingoethopia/management/commands/__init__.py create mode 100644 web_dev/sas_web/meingoethopia/management/commands/from_excel.py diff --git a/web_dev/sas_web/meingoethopia/management/__init__.py b/web_dev/sas_web/meingoethopia/management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/web_dev/sas_web/meingoethopia/management/commands/__init__.py b/web_dev/sas_web/meingoethopia/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/web_dev/sas_web/meingoethopia/management/commands/from_excel.py b/web_dev/sas_web/meingoethopia/management/commands/from_excel.py new file mode 100644 index 0000000..f01bc29 --- /dev/null +++ b/web_dev/sas_web/meingoethopia/management/commands/from_excel.py @@ -0,0 +1,28 @@ +from django.core.management.base import BaseCommand +from meingoethopia.models import Angestellter +import xlrd + + +class Command(BaseCommand): + args = 'filename' + help = 'populate the angestellten database from an excel list' + + def populate_db(self, filename): + book = xlrd.open_workbook(filename) + sheet = book.sheets()[0] + for row in [sheet.row_values(i) for i in range(sheet.nrows) if + sheet.row_values(i)[0]]: + name, klasse = row + vorname = name.split(', ')[1] + nachname = name.split(', ')[0] + name_final = vorname + " " + nachname + print(name_final, klasse) + Angestellter(name=name_final.replace('ć', 'c'), klasse=klasse, + is_teacher=False).save() + + def handle(self, *args, **options): + filename = options['filename'] + self.populate_db(filename) + + def add_arguments(self, parser): + parser.add_argument('filename')