Load app models
Load legacy models
This commit is contained in:
parent
673acb4bb9
commit
90dd896f13
|
|
@ -2,6 +2,7 @@ from os.path import exists
|
||||||
from importlib.machinery import SourceFileLoader
|
from importlib.machinery import SourceFileLoader
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
import transfer.models as legacy_models
|
||||||
|
|
||||||
|
|
||||||
def transfer_objects(data_type):
|
def transfer_objects(data_type):
|
||||||
|
|
@ -15,7 +16,7 @@ def transfer_objects(data_type):
|
||||||
|
|
||||||
for model, card in card_module.card.items():
|
for model, card in card_module.card.items():
|
||||||
if "data_type" in card and data_type == card["data_type"]:
|
if "data_type" in card and data_type == card["data_type"]:
|
||||||
card['name'] = model
|
card['app_label'] = app.label
|
||||||
models_list[model] = card
|
models_list[model] = card
|
||||||
|
|
||||||
if len(models_list) < 1:
|
if len(models_list) < 1:
|
||||||
|
|
@ -24,14 +25,37 @@ def transfer_objects(data_type):
|
||||||
|
|
||||||
models_list = sort_by_dependencies(models_list)
|
models_list = sort_by_dependencies(models_list)
|
||||||
|
|
||||||
print(f"==========================\r\n{models_list}\r\n==========================\r\n")
|
|
||||||
|
|
||||||
for model, card in models_list.items():
|
for model, card in models_list.items():
|
||||||
print(model)
|
transfer_model(model, card)
|
||||||
print(card)
|
|
||||||
|
|
||||||
|
def transfer_model(model, card):
|
||||||
|
print(f"=================================================\r\n"
|
||||||
|
f"MODEL: {model}\r\n"
|
||||||
|
f"=================================================")
|
||||||
|
try:
|
||||||
|
app_model = apps.get_model(app_label=card['app_label'], model_name=model)
|
||||||
|
except LookupError as e:
|
||||||
|
print(f"ERROR: model {model} from {card['app_label']} can not be loaded: {e}")
|
||||||
|
return
|
||||||
|
|
||||||
|
for legacy_table, fields in card['fields'].items():
|
||||||
|
try:
|
||||||
|
legacy_model = apps.get_model(app_label="transfer", model_name=legacy_table)
|
||||||
|
except LookupError as e:
|
||||||
|
print(f"ERROR: legacy model {model} can not be loaded: {e}")
|
||||||
|
return
|
||||||
|
|
||||||
|
print(app_model)
|
||||||
|
|
||||||
|
print(legacy_model)
|
||||||
|
|
||||||
|
print(fields)
|
||||||
|
|
||||||
|
|
||||||
def sort_by_dependencies(data):
|
def sort_by_dependencies(data):
|
||||||
|
"""Сортировка моделей по зависимостям"""
|
||||||
|
|
||||||
"""Сначала мы сортируем модели по зависимостям в обратном порядке, используя сортировку вставкой"""
|
"""Сначала мы сортируем модели по зависимостям в обратном порядке, используя сортировку вставкой"""
|
||||||
result = []
|
result = []
|
||||||
for model, card in data.items():
|
for model, card in data.items():
|
||||||
|
|
@ -45,7 +69,6 @@ def sort_by_dependencies(data):
|
||||||
result.append(model)
|
result.append(model)
|
||||||
|
|
||||||
"""Затем мы создаём сортированный словарь из реверса получившегося результата"""
|
"""Затем мы создаём сортированный словарь из реверса получившегося результата"""
|
||||||
print(result)
|
|
||||||
|
|
||||||
result = OrderedDict(
|
result = OrderedDict(
|
||||||
[(model, data[model]) for model in reversed(result)]
|
[(model, data[model]) for model in reversed(result)]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user