Федеральная информационная адресная система
Project description
Что это?
Компонент для взаимодействия с сервисом адресной базы ФИАС, расположенной на удаленном сервере. Он позволит вам добавить в окно формы текстовые элементы, варианты заполнения которых можно будет получать по мере ввода текста.
Поле “Нас. пункт” заполняется значениями формального имени адресных объектов (далее - АО), относящихся к уровням 1 (“регион”), 4 (“город”), 6 (“нас. пункт”) 90 (“доп. территория”).
Поле “Улица” заполняется значениями АО уровня 7 (“улица”), 91 (“улицы на доп. территории”).
Установка
pip install m3_fias -i http://pypi.bars-open.ru/simple
Подключение в m3_blank
Добавить m3_fias.demo в INSTALLED_APPS.
Заменить workspace в views.py на fias_workspace.html.
Указать в settings.py параметр FIAS_API_URL с адресом rest-сервиса ФИАС (django-rest-fias, https://bitbucket.org/barsgroup/django-rest-fias) (на данный момент можно использовать http://fias.bars-open.ru/fias/v1/ao/.
Переход с m3-kladr
Установите m3-fias.
Добавьте m3-fias в список зависимостей проекта.
Прописать адрес сервера ФИАС в FIAS_API_URL settings.py. Также поддерживаются параметры FIAS_CACHE_PREFIX (префикс для ключей в кэше, значение по умолчанию “m3-fias”) и FIAS_CACHE_TIMEOUT (время кеширования данных, значение по умолчанию - 1 сутки).
Т.к. при работе с сервером ФИАС используется кеширование, необходимо настроить кэш Django. Использование Local-memory caching не рекомендуется в production cреде.
Расширить размер колонок, содержащих коды КЛАДР до 36 символов.
Сконвертируйте коды КЛАДР из этих колонок в GUID коды АО management-командой translate_kladr_codes.
Замените упоминания ExtAddrComponent в файлах форм на ExtFiasAddrComponent.
Подключить файл /static/m3-fias/ext-fields/ext-fias-addrfield.js в секцию extra_head вашего workspace (пример в m3_fias/demo/templates/fias_workspace.html)
Ссылки на дома
В адресных компонентах добавлено новое скрытое поле house_guid, содержащее в себе GUID-идентификатор записи о доме в БД ФИАС. Это поле заполняется только в случае выбора одного из значений выпадающего поля с вариантами домов.
Впоследствии это значение не используется при отображении формы, и только передается в параметрах запроса к action-у.
Конвертация кодов КЛАДР
Для массовой конвертации кодов КЛАДР в колонках таблиц можно использовать management-команду translate_kladr_codes:
python ./manage.py translate_kladr_codes <имя приложения> <имя модели> <поле1> [<поле2>...<полеN>]
К примеру, имеется модель Children приложения declaration, который содержит поля address_place и address_street для хранения кодов КЛАДР. Для конвертации их в GUID’ы ФИАС, нужно запустить команду следующим образом:
python ./manage.py translate_kladr_codes children address_place address_street
Запущенная команда затем сделает выборку всех численных значений из указанных колонок таблицы (полей модели), и будет запрашивать соответствующие им значения GUID с удаленного сервера. После нахождения соответствия, все поля записи содержащих эти коды будут обновлены.
N.B. Поиск соответствий производится только среди объектов с проставленным статусом актуальности, поэтому возможна ситуация, когда некоторые коды остаются несконвертированными.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.