对象创建

时间:2019-05-01 20:33:59

标签: python django django-models

我有一个数据集,该数据集以(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!'))

0 个答案:

没有答案