Команда loadnsi позволяет загружать и обновлять фикстуры НСИ в которых записи имеют стабильный pk вашей внутренней системы бд.
-
Установка пакета
pip install loadnsi
-
Создание файла переменных среды .env файл с содержимым:
# Опционально, позволяет запускать команду из вложенных директорий проекта. ABS_ROOT_DIR=C:/path/to/your/project/dir PATH_TO_LOADNSI_CONFIG=path/to/your/config/file.py # Опционально, требуется только если вы собираетесь использовать официальный API НСИ (Запуск команды с флагом `--use_official_api`). NSI_API_USER_KEY=some-key
-
Создание файла конфигурации
loadnsi_config.py
NSI_FIXTURES_FOLDER = 'path/to/your/nsi/folder' NSI_PASSPORTS = { 'file': 'Локальное название файла с паспортами справочников', 'model': 'Локальное название модели с паспортами справочников', # Опциональные параметры (include, exclude): 'include': <Iterable объект состоящий из полей паспорта (str) которые необходимо оставить в объекте паспорта>, 'exclude': <Iterable объект состоящий из полей паспорта (str) которые необходимо исключить из объекта паспорта>, } DICT_INTERNAL_PK = 'your pk field name *not alias*' PASSPORTS_REL = 'your fieldname for ForeignKey to PARENT_DICT_CLS' PARENT_DICT_CLS = 'your base cls modelname for dicts' NSI_DICTIONARIES = { 'Локальное название файла справочника 1': { 'model': 'Приложение.МодельСправочника1', 'oid': 'OID Справочника 1', # Опциональные параметры (filter, include, exclude и create_sql): 'filter': <Callable объект принимает справочник (dict) должен вернуть (bool) оставлять ли этот объект в списке>, 'include': <Iterable объект состоящий из полей справочника (str) которые необходимо оставить в объекте справочника>, 'exclude': <Iterable объект состоящий из полей справочника (str) которые необходимо исключить из объекта справочника>, 'create_sql': <Boolean объект (bool), если True будет создан дублирующий файл справочника в SQL формате>, }, 'Локальное название файла справочника 2': { 'model': 'Приложение.МодельСправочника2', 'oid': 'OID Справочника 2', }, }
Подробности про каждую опцию команды можно узнать вызвав команду с флагом --help
We would love you to contribute to loadnsi
, pull requests are very welcome! Please see CONTRIBUTING.md for more information.