MotherRange import
This commit is contained in:
parent
adfdbc0a86
commit
83ab27c2d3
1 changed files with 20 additions and 4 deletions
|
@ -288,7 +288,9 @@ class Command(BaseCommand):
|
||||||
parser.add_argument('--csv_folder_path', type=str, help="Path where the csvs are located")
|
parser.add_argument('--csv_folder_path', type=str, help="Path where the csvs are located")
|
||||||
parser.add_argument('--model_name', type=str, help="model name")
|
parser.add_argument('--model_name', type=str, help="model name")
|
||||||
parser.add_argument('--app_name', type=str, help="django app name that the model is connected to", default='app')
|
parser.add_argument('--app_name', type=str, help="django app name that the model is connected to", default='app')
|
||||||
parser.add_argument('--all', action='store_true', help="'Imports all csvs")
|
parser.add_argument('--mother_range_reload', action='store_true', help="Whether we are trying to reload mother "
|
||||||
|
"range relationship")
|
||||||
|
parser.add_argument('--all', action='store_true', help="Imports all csvs")
|
||||||
|
|
||||||
# ./manage.py import --path /home/pcoder/Downloads/gmbadb/csvs/v2-LU_RedListCategories.csv --model_name RedListCategory --app_name app
|
# ./manage.py import --path /home/pcoder/Downloads/gmbadb/csvs/v2-LU_RedListCategories.csv --model_name RedListCategory --app_name app
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
|
@ -308,9 +310,9 @@ class Command(BaseCommand):
|
||||||
for csv_file_name, model_name in self.csv_files_models_dict.items():
|
for csv_file_name, model_name in self.csv_files_models_dict.items():
|
||||||
print("Importing %s -- %s" % (csv_file_name, model_name))
|
print("Importing %s -- %s" % (csv_file_name, model_name))
|
||||||
models_to_ignore = ['Range', 'NamesImport', 'ImportGeom210915', 'Organization', 'AddElevation',
|
models_to_ignore = ['Range', 'NamesImport', 'ImportGeom210915', 'Organization', 'AddElevation',
|
||||||
'GMBA_V2_Centroid', 'Person', 'PeopleRange', 'PeopleFunction', "PeopleResource",
|
'GMBA_V2_Centroid', 'Person', 'PeopleRange', 'PeopleFunction', "PeopleResource",
|
||||||
"RangeCountry", "RangeNameTranslation", "RangeOnlineInfo", "ResourceRange",
|
"RangeCountry", "RangeNameTranslation", "RangeOnlineInfo", "ResourceRange",
|
||||||
"ResourceKeyword", "Repository"]
|
"ResourceKeyword", "Repository"]
|
||||||
models_to_ignore = []
|
models_to_ignore = []
|
||||||
if model_name in models_to_ignore:
|
if model_name in models_to_ignore:
|
||||||
# we have already imported and do not want to spend more time redoing stuff
|
# we have already imported and do not want to spend more time redoing stuff
|
||||||
|
@ -345,6 +347,7 @@ class Command(BaseCommand):
|
||||||
else:
|
else:
|
||||||
_model = apps.get_model(options.get('app_name', 'app'), options['model_name'])
|
_model = apps.get_model(options.get('app_name', 'app'), options['model_name'])
|
||||||
model_name = options['model_name']
|
model_name = options['model_name']
|
||||||
|
mother_range_reload = options.get('mother_range_reload')
|
||||||
k = ''
|
k = ''
|
||||||
csv_file_name = ''
|
csv_file_name = ''
|
||||||
for k, v in self.csv_files_models_dict.items():
|
for k, v in self.csv_files_models_dict.items():
|
||||||
|
@ -374,6 +377,19 @@ class Command(BaseCommand):
|
||||||
header = [h.strip('"') for h in header]
|
header = [h.strip('"') for h in header]
|
||||||
first = False
|
first = False
|
||||||
continue
|
continue
|
||||||
|
if mother_range_reload:
|
||||||
|
# We have loaded the range model already and we are attempting to construct the mother_range
|
||||||
|
# relationship
|
||||||
|
print("Mother range relationship")
|
||||||
|
try:
|
||||||
|
this_range = Range.objects.get(id=int(row[0]))
|
||||||
|
r = Range.objects.get(id=int(row[5])) # default Range which exists already
|
||||||
|
this_range.mother_range = r
|
||||||
|
this_range.save()
|
||||||
|
except Range.DoesNotExist as dne:
|
||||||
|
print("MotherRange")
|
||||||
|
print(str(dne))
|
||||||
|
continue
|
||||||
_object_dict = {self.cols_to_django_fields.get(key): value.lstrip('"').rstrip('"') for key, value in zip(header, row)}
|
_object_dict = {self.cols_to_django_fields.get(key): value.lstrip('"').rstrip('"') for key, value in zip(header, row)}
|
||||||
_object_dict = handle_object_dict(_object_dict, model_name)
|
_object_dict = handle_object_dict(_object_dict, model_name)
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in a new issue