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