def save_companies(self):
"""
Receives path to the dataset file and create a Company object for
each row of each file. It creates the related activity when needed.
"""
skip = ('main_activity', 'secondary_activity')
keys = tuple(f.name for f in Company._meta.fields if f not in skip)
with lzma.open(self.path, mode='rt', encoding='utf-8') as file_handler:
for row in csv.DictReader(file_handler):
main, secondary = self.save_activities(row)
filtered = {k: v for k, v in row.items() if k in keys}
obj = Company.objects.create(**self.serialize(filtered))
for activity in main:
obj.main_activity.add(activity)
for activity in secondary:
obj.secondary_activity.add(activity)
obj.save()
self.count += 1
self.print_count(Company, count=self.count)
评论列表
文章目录