Add key to transfer

Add queryset to transfer
Add models and fields get to transfer
This commit is contained in:
littlewolf 2019-10-08 22:02:08 +03:00
parent 03b22d79db
commit e8c48e99c6
2 changed files with 42 additions and 11 deletions

View File

@ -99,7 +99,7 @@ card = {
"coordinates": (("lat", "latitude"), ("long", "longitude")), "coordinates": (("lat", "latitude"), ("long", "longitude")),
"code": "country_code_2", "code": "country_code_2",
"postal_code": "zip_code", "postal_code": "zip_code",
"is_island": ("is_island", "Boolean") "is_island": ("is_island", "is_island", "Boolean")
}, },
"relations": { "relations": {
"CityNames": { "CityNames": {

View File

@ -63,17 +63,48 @@ def transfer_model(model, card):
print(f"ERROR: model {model} from {card['app_label']} can not be loaded: {e}") print(f"ERROR: model {model} from {card['app_label']} can not be loaded: {e}")
return return
querysets = {} card_fields = card['fields']
relations = card_fields['relations'] if 'relations' in card_fields else None
if relations:
del(card_fields['relations'])
if len(card_fields) > 1:
print("You must set one table to transfer")
return
legacy_table = list(card_fields.keys())[0]
fields = list(card_fields.values())[0]
for legacy_table, fields in card['fields'].items():
try: try:
legacy_model = apps.get_model(app_label="transfer", model_name=legacy_table) legacy_model = apps.get_model(app_label="transfer", model_name=legacy_table)
except LookupError as e: except LookupError as e:
print(f"ERROR: legacy model {model} can not be loaded: {e}") print(f"ERROR: legacy model {model} can not be loaded: {e}")
return return
print(f"APP MODEL: {app_model}") legacy_fields = []
print(f"LEGACY MODEL: {legacy_model}") for legacy_field in fields.values():
if isinstance(legacy_field, str):
legacy_fields.append(legacy_field)
print(f"FIELDS: {fields}") elif isinstance(legacy_field, tuple):
"""Группа полей"""
if isinstance(legacy_field[0], tuple):
for legacy_field_group in legacy_field:
legacy_fields.append(legacy_field_group[1])
else:
legacy_fields.append(legacy_field[1])
if model != "City":
return
print(legacy_fields)
queryset = legacy_model.objects.only(*legacy_fields)
print(queryset)
if relations:
for relation_table, relation_data in relations.items():
print(relation_table)
print(relation_data)