diff --git a/back/tgbot/models.py b/back/tgbot/models.py index 7e3bd07..a09dc0e 100644 --- a/back/tgbot/models.py +++ b/back/tgbot/models.py @@ -43,3 +43,4 @@ class TgItem(models.Model): def __str__(self): return f"Tg item {self.name}" + diff --git a/back/tmc/admin.py b/back/tmc/admin.py index 056dac8..0ebeca5 100644 --- a/back/tmc/admin.py +++ b/back/tmc/admin.py @@ -1,5 +1,8 @@ from django.contrib import admin -from .models import CustomTable, BaseCustomField +from .models import BaseCustomField, CustomTable, Territory, TerritoryItem admin.site.register(CustomTable) admin.site.register(BaseCustomField) + +admin.site.register(Territory) +admin.site.register(TerritoryItem) diff --git a/back/tmc/management/commands/csv_import.py b/back/tmc/management/commands/csv_import.py new file mode 100644 index 0000000..67089fc --- /dev/null +++ b/back/tmc/management/commands/csv_import.py @@ -0,0 +1,19 @@ +from django.core.management.base import BaseCommand +import csv + +from tmc.models import Territory, TerritoryItem +class Command(BaseCommand): + help = "Creating model objects according the file path specified" + + def handle(self, *args, **options): + file_path = "tmc/management/commands/data.csv" + with open(file_path, mode="r") as file: + csvFile = csv.reader(file) + for lines in csvFile: + if not Territory.objects.filter(name=lines[0]).exists(): + parent = Territory.objects.create(name=lines[0]) + else: + parent = Territory.objects.get(name=lines[0]) + + if not TerritoryItem.objects.filter(name=lines[1]).exists(): + TerritoryItem.objects.create(name=lines[1], parent=parent) \ No newline at end of file diff --git a/back/tmc/models.py b/back/tmc/models.py index f2868f2..fbb8581 100644 --- a/back/tmc/models.py +++ b/back/tmc/models.py @@ -15,3 +15,16 @@ class CustomTable(models.Model): def __str__(self): return self.name + +class Territory(models.Model): + name = models.CharField() + + def __str__(self): + return self.name + +class TerritoryItem(models.Model): + name = models.CharField() + parent = models.ForeignKey(Territory, models.RESTRICT) + + def __str__(self): + return self.name \ No newline at end of file