Создание объектов - PullRequest
       7

Создание объектов

0 голосов
/ 01 мая 2019

У меня есть набор данных, который возвращает мне набор кортежей в этом формате (region, district, city, role), и я хочу создать иерархию, но цикл работает некорректно, он создает только region объекты и дублирует их это объекты запись:

('Рівненська обл.', 'Дубенський р-н', 'с.Нова Миколаївка', Place.VILLAGE)
 ('Тернопільська обл.', 'Чортківський р-н', 'с.Мухавка', Place.VILLAGE)
 ('Житомирська обл.', 'Попільнянський р-н', 'с.Миролюбівка', Place.VILLAGE)
 ('Тернопільська обл.', 'Бучацький р-н', 'с.Передмістя', Place.VILLAGE)
 ('Дніпропетровська обл.', 'Царичанський р-н', 'с.Рибалки', Place.VILLAGE)

моя модель:

class Place(models.Model):
    name = models.CharField(max_length=128, verbose_name='Place name', )
    slug = models.SlugField(max_length=128, blank=True, null=True)
    parent = models.ForeignKey('self', on_delete=models.CASCADE, blank=True, null=True)
    role = models.CharField(max_length=20, choices=ROLE_CHOICES, null=True, blank=True)
class Command(BaseCommand):

    help = 'Fill DB with initial data'

    def handle(self, *args, **options):
        for entry in list(get_dataset())[:10]:
            region, region_created = Place.objects.get_or_create(name=entry[0], role=Place.REGION)
            district, district_created = Place.objects.get_or_create(name=entry[1], role=Place.DISTRICT, parent=region)
            city_obj, city_created = Place.objects.get_or_create(name=entry[2], role=entry[3], parent=district)

        self.stdout.write(self.style.SUCCESS('Database updated successfully!'))
...