|
|
|
@ -11,7 +11,7 @@ from django.conf import settings |
|
|
|
class Command(BaseCommand): |
|
|
|
class Command(BaseCommand): |
|
|
|
def handle(self, *args, **options): |
|
|
|
def handle(self, *args, **options): |
|
|
|
|
|
|
|
|
|
|
|
f = open(settings.MEDIA_ROOT+'/import/places_en.xlsx', 'r') |
|
|
|
f = open(settings.MEDIA_ROOT+'/import/halls_en.xlsx', 'r') |
|
|
|
|
|
|
|
|
|
|
|
book = xlrd.open_workbook(file_contents=f.read()) |
|
|
|
book = xlrd.open_workbook(file_contents=f.read()) |
|
|
|
|
|
|
|
|
|
|
|
@ -21,6 +21,8 @@ class Command(BaseCommand): |
|
|
|
row_list = [sheet.row_values(row_number) for row_number in range(sheet.nrows)] |
|
|
|
row_list = [sheet.row_values(row_number) for row_number in range(sheet.nrows)] |
|
|
|
labels = [label for label in row_list[0]] |
|
|
|
labels = [label for label in row_list[0]] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for row_number, row in enumerate(row_list): |
|
|
|
for row_number, row in enumerate(row_list): |
|
|
|
# go through all rows in file |
|
|
|
# go through all rows in file |
|
|
|
if row_number > 0: |
|
|
|
if row_number > 0: |
|
|
|
@ -31,6 +33,7 @@ class Command(BaseCommand): |
|
|
|
object = PlaceExposition.objects.language('en').get(id=int(row[0])) |
|
|
|
object = PlaceExposition.objects.language('en').get(id=int(row[0])) |
|
|
|
except: |
|
|
|
except: |
|
|
|
continue |
|
|
|
continue |
|
|
|
|
|
|
|
methods = [] |
|
|
|
for col_number, cell in enumerate(row): |
|
|
|
for col_number, cell in enumerate(row): |
|
|
|
# go through row cells |
|
|
|
# go through row cells |
|
|
|
# field name current cell |
|
|
|
# field name current cell |
|
|
|
@ -39,6 +42,12 @@ class Command(BaseCommand): |
|
|
|
|
|
|
|
|
|
|
|
if setting is None: |
|
|
|
if setting is None: |
|
|
|
continue |
|
|
|
continue |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if setting.get('method'): |
|
|
|
|
|
|
|
if cell != "": |
|
|
|
|
|
|
|
methods.append({'func': setting['func'], 'value': cell, 'purpose': setting.get('purpose')}) |
|
|
|
|
|
|
|
continue |
|
|
|
|
|
|
|
|
|
|
|
field_name = setting['field'] |
|
|
|
field_name = setting['field'] |
|
|
|
|
|
|
|
|
|
|
|
func = setting.get('func') |
|
|
|
func = setting.get('func') |
|
|
|
@ -58,7 +67,23 @@ class Command(BaseCommand): |
|
|
|
# setattr(object, 'address', google_address(value)) |
|
|
|
# setattr(object, 'address', google_address(value)) |
|
|
|
setattr(object, field_name, value) |
|
|
|
setattr(object, field_name, value) |
|
|
|
|
|
|
|
|
|
|
|
print(object.description) |
|
|
|
try: |
|
|
|
object.save() |
|
|
|
object.save() |
|
|
|
print('post save %s'% str(object)) |
|
|
|
print('post save %s'% str(object)) |
|
|
|
|
|
|
|
except: |
|
|
|
|
|
|
|
continue |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for method in methods: |
|
|
|
|
|
|
|
func = method['func'] |
|
|
|
|
|
|
|
if method.get('purpose'): |
|
|
|
|
|
|
|
try: |
|
|
|
|
|
|
|
func(object, method['value'], method['purpose']) |
|
|
|
|
|
|
|
except: |
|
|
|
|
|
|
|
continue |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
try: |
|
|
|
|
|
|
|
func(object, method['value']) |
|
|
|
|
|
|
|
except: |
|
|
|
|
|
|
|
continue |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|