Package: m3-rest-gar
REST-сервис на django-rest-framework для доступа к базе ГАРЭтот сервис - результат объединения разработок:django-rest-framework <http://www.django-rest-framework.org/>m3-garФормат сервисаСписок адресных объектовGET /gar/v1/addrobj/Параметры:level:Тип: число или список чисел через запятую.Фильтрация по уровню адресного объекта.parent:Тип:hierarchy:objectidhierarchy- Вид иерархии -all,munилиadmobjectid-objectidродительского объектаФильтрация по родительскому адресному объекту.region_code:Тип: число или список чисел через запятую.Фильтрация по коду региона.name:Тип: строка символов.Поиск адресного объекта по содержанию строки в наименовании.page:Тип: число.Страница вывода результатов.Результат:Тип: application/json.Результаты выводятся по страницам согласно настройкам DRF.Примеры:GET /gar/v1/addrobj/?name=Шамбалыгский&level=8&parent=adm:210893

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 250006,
      "params": [
        {
          "id": 3197562,
          "typeid": {
            "id": 5,
            "name": "Почтовый индекс",
            "code": "PostIndex",
            "desc": "Информация о почтовом индексе",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 207679,
          "changeid": 533863,
          "changeidend": 0,
          "value": "667901",
          "updatedate": "2017-11-16",
          "startdate": "1900-01-01",
          "enddate": "2079-06-06"
        }
      ],
      "objectguid": "7effc9de-7888-440b-b2a0-cc5432bc09a5",
      "changeid": 533888,
      "name": "Шамбалыгский",
      "typename": "пер",
      "level": "8",
      "previd": 249989,
      "nextid": 0,
      "updatedate": "2019-12-13",
      "startdate": "1900-01-01",
      "enddate": "2079-06-06",
      "isactual": true,
      "isactive": true,
      "opertypeid": 1,
      "objectid": 207679
    }
  ]
}Адресный объектGET /gar/v1/addrobj/:objectid:/Параметры:objectid:Тип: число.Идентификатор адресного объектаРезультат:Тип: application/json.Примеры:GET /gar/v1/addrobj/207679/

{
  "id": 250006,
  "params": [
    {
      "id": 3197562,
      "typeid": {
        "id": 5,
        "name": "Почтовый индекс",
        "code": "PostIndex",
        "desc": "Информация о почтовом индексе",
        "updatedate": "2018-06-15",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 207679,
      "changeid": 533863,
      "changeidend": 0,
      "value": "667901",
      "updatedate": "2017-11-16",
      "startdate": "1900-01-01",
      "enddate": "2079-06-06"
    }
  ],
  "objectguid": "7effc9de-7888-440b-b2a0-cc5432bc09a5",
  "changeid": 533888,
  "name": "Шамбалыгский",
  "typename": "пер",
  "level": "8",
  "previd": 249989,
  "nextid": 0,
  "updatedate": "2019-12-13",
  "startdate": "1900-01-01",
  "enddate": "2079-06-06",
  "isactual": true,
  "isactive": true,
  "opertypeid": 1,
  "objectid": 207679
}Список домовGET /gar/v1/houses/Параметры:parent:Тип:hierarchy:objectidhierarchy- Вид иерархии -all,munилиadmobjectid-objectidродительского объектаФильтрация по родительскому адресному объекту.housenum:Тип: строка символов.Поиск дома по содержанию строки в номере.page:Тип: число. Страница вывода результатов.Результат:Тип: application/json.Результаты выводятся по страницам согласно настройкам DRF.Примеры:GET /gar/v1/houses/?parent=adm:210826&name=5

{
  "count": 65,
  "next": "http://127.0.0.1:8000/gar/v1/houses/?name=5&page=2&parent=adm%3A210826",
  "previous": null,
  "results": [
    {
      "id": 52384730,
      "params": [
        {
          "id": 197175620,
          "typeid": {
            "id": 3,
            "name": "ИНН ФЛ ТЕР УЧ",
            "code": "territorialifnsflcode",
            "desc": "Территориальный участок ИФНС ЮЛ",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33665495,
          "changeid": 51296115,
          "changeidend": 158819227,
          "value": "1717",
          "updatedate": "2020-11-21",
          "startdate": "1900-01-01",
          "enddate": "2020-11-21"
        },
        {
          "id": 197175630,
          "typeid": {
            "id": 6,
            "name": "ОКАТО",
            "code": "OKATO",
            "desc": "ОКАТО",
            "updatedate": "2018-06-19",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33665495,
          "changeid": 51296115,
          "changeidend": 0,
          "value": "93243825001",
          "updatedate": "2019-12-14",
          "startdate": "1900-01-01",
          "enddate": "2079-06-06"
        },
        {
          "id": 197175631,
          "typeid": {
            "id": 5,
            "name": "Почтовый индекс",
            "code": "PostIndex",
            "desc": "Информация о почтовом индексе",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33665495,
          "changeid": 51296115,
          "changeidend": 0,
          "value": "667903",
          "updatedate": "2019-12-14",
          "startdate": "1900-01-01",
          "enddate": "2079-06-06"
        },
        {
          "id": 197175643,
          "typeid": {
            "id": 14,
            "name": "Признак присвоения адреса",
            "code": "DivisionType",
            "desc": "Признак в каком делении присвоен адрес, муниципальном/административном",
            "updatedate": "2018-12-14",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33665495,
          "changeid": 51296115,
          "changeidend": 0,
          "value": "0",
          "updatedate": "2019-12-14",
          "startdate": "1900-01-01",
          "enddate": "2079-06-06"
        },
        {
          "id": 197175692,
          "typeid": {
            "id": 15,
            "name": "Порядковый номер",
            "code": "Counter",
            "desc": "Порядковый номер обьекта в рамках родителя",
            "updatedate": "2018-12-14",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33665495,
          "changeid": 51296115,
          "changeidend": 0,
          "value": "18",
          "updatedate": "2019-12-14",
          "startdate": "1900-01-01",
          "enddate": "2079-06-06"
        },
        {
          "id": 197175626,
          "typeid": {
            "id": 7,
            "name": "OKTMO",
            "code": "OKTMO",
            "desc": "OKTMO",
            "updatedate": "2018-06-19",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33665495,
          "changeid": 51296115,
          "changeidend": 51296790,
          "value": "93643425",
          "updatedate": "2019-12-14",
          "startdate": "1900-01-01",
          "enddate": "2019-12-13"
        },
        {
          "id": 197175728,
          "typeid": {
            "id": 7,
            "name": "OKTMO",
            "code": "OKTMO",
            "desc": "OKTMO",
            "updatedate": "2018-06-19",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33665495,
          "changeid": 51296790,
          "changeidend": 0,
          "value": "93643425101",
          "updatedate": "2019-12-14",
          "startdate": "2019-12-13",
          "enddate": "2079-06-06"
        },
        {
          "id": 197175636,
          "typeid": {
            "id": 13,
            "name": "Реестровый номер",
            "code": "ReestrNum",
            "desc": "Реестровый номер адресного объекта",
            "updatedate": "2018-11-12",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33665495,
          "changeid": 51296115,
          "changeidend": 51296790,
          "value": "936434251010000000220018000000005",
          "updatedate": "2019-12-14",
          "startdate": "1900-01-01",
          "enddate": "2019-12-13"
        },
        {
          "id": 197176157,
          "typeid": {
            "id": 13,
            "name": "Реестровый номер",
            "code": "ReestrNum",
            "desc": "Реестровый номер адресного объекта",
            "updatedate": "2018-11-12",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33665495,
          "changeid": 51296790,
          "changeidend": 0,
          "value": "936434251010000000220018000000000",
          "updatedate": "2019-12-14",
          "startdate": "2019-12-13",
          "enddate": "2079-06-06"
        },
        {
          "id": 197173900,
          "typeid": {
            "id": 1,
            "name": "ИФНС ФЛ",
            "code": "IFNSFL",
            "desc": "ИФНС ФЛ",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33665495,
          "changeid": 51296115,
          "changeidend": 158819227,
          "value": "1720",
          "updatedate": "2020-11-21",
          "startdate": "1900-01-01",
          "enddate": "2020-11-21"
        },
        {
          "id": 679599960,
          "typeid": {
            "id": 1,
            "name": "ИФНС ФЛ",
            "code": "IFNSFL",
            "desc": "ИФНС ФЛ",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33665495,
          "changeid": 158819227,
          "changeidend": 0,
          "value": "1700",
          "updatedate": "2020-11-21",
          "startdate": "2020-11-21",
          "enddate": "2079-06-06"
        },
        {
          "id": 679666370,
          "typeid": {
            "id": 2,
            "name": "ИФНС ЮЛ",
            "code": "IFNSUL",
            "desc": "ИФНС ЮЛ",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33665495,
          "changeid": 158819227,
          "changeidend": 0,
          "value": "1700",
          "updatedate": "2020-11-21",
          "startdate": "2020-11-21",
          "enddate": "2079-06-06"
        },
        {
          "id": 197175624,
          "typeid": {
            "id": 4,
            "name": "ИФНС ЮЛ ТЕР УЧ",
            "code": "territorialifnsulcode",
            "desc": "Территориальный участок ИФНС ФЛ",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33665495,
          "changeid": 51296115,
          "changeidend": 158819227,
          "value": "1717",
          "updatedate": "2020-11-21",
          "startdate": "1900-01-01",
          "enddate": "2020-11-21"
        },
        {
          "id": 197175616,
          "typeid": {
            "id": 2,
            "name": "ИФНС ЮЛ",
            "code": "IFNSUL",
            "desc": "ИФНС ЮЛ",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33665495,
          "changeid": 51296115,
          "changeidend": 158819227,
          "value": "1720",
          "updatedate": "2020-11-21",
          "startdate": "1900-01-01",
          "enddate": "2020-11-21"
        }
      ],
      "housetype": {
        "id": 3,
        "name": "Домовладение",
        "shortname": "двлд.",
        "desc": "Домовладение",
        "updatedate": "1900-01-01",
        "startdate": "1900-01-01",
        "enddate": "2015-11-05",
        "isactive": false
      },
      "addtype1": null,
      "addtype2": null,
      "objectguid": "0e27bfa6-d3e2-4160-967a-5f14d43fbc98",
      "changeid": 51296790,
      "housenum": "18",
      "addnum1": null,
      "addnum2": null,
      "previd": 20010713,
      "nextid": 0,
      "updatedate": "2019-12-14",
      "startdate": "2019-12-13",
      "enddate": "2079-06-06",
      "isactual": true,
      "isactive": true,
      "opertypeid": 20,
      "objectid": 33665495
    }
  ]
}Информация о домеGET /gar/v1/houses/:objectid:/Параметры:objectid:Тип: число.Идентификатор домаРезультат:Тип: application/json.Примеры:GET /gar/v1/houses/33663074/

{
  "id": 60865585,
  "params": [
    {
      "id": 197161766,
      "typeid": {
        "id": 1,
        "name": "ИФНС ФЛ",
        "code": "IFNSFL",
        "desc": "ИФНС ФЛ",
        "updatedate": "2018-06-15",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 33663074,
      "changeid": 51292720,
      "changeidend": 158819225,
      "value": "1720",
      "updatedate": "2020-11-21",
      "startdate": "1900-01-01",
      "enddate": "2020-11-21"
    },
    {
      "id": 197163461,
      "typeid": {
        "id": 13,
        "name": "Реестровый номер",
        "code": "ReestrNum",
        "desc": "Реестровый номер адресного объекта",
        "updatedate": "2018-11-12",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 33663074,
      "changeid": 51293350,
      "changeidend": 0,
      "value": "936434251010000000220012000000000",
      "updatedate": "2019-12-14",
      "startdate": "2019-12-13",
      "enddate": "2079-06-06"
    },
    {
      "id": 197163411,
      "typeid": {
        "id": 6,
        "name": "ОКАТО",
        "code": "OKATO",
        "desc": "ОКАТО",
        "updatedate": "2018-06-19",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 33663074,
      "changeid": 51292720,
      "changeidend": 0,
      "value": "93243825001",
      "updatedate": "2019-12-14",
      "startdate": "1900-01-01",
      "enddate": "2079-06-06"
    },
    {
      "id": 197163416,
      "typeid": {
        "id": 5,
        "name": "Почтовый индекс",
        "code": "PostIndex",
        "desc": "Информация о почтовом индексе",
        "updatedate": "2018-06-15",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 33663074,
      "changeid": 51292720,
      "changeidend": 0,
      "value": "667903",
      "updatedate": "2019-12-14",
      "startdate": "1900-01-01",
      "enddate": "2079-06-06"
    },
    {
      "id": 197163430,
      "typeid": {
        "id": 14,
        "name": "Признак присвоения адреса",
        "code": "DivisionType",
        "desc": "Признак в каком делении присвоен адрес, муниципальном/административном",
        "updatedate": "2018-12-14",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 33663074,
      "changeid": 51292720,
      "changeidend": 0,
      "value": "0",
      "updatedate": "2019-12-14",
      "startdate": "1900-01-01",
      "enddate": "2079-06-06"
    },
    {
      "id": 197163432,
      "typeid": {
        "id": 15,
        "name": "Порядковый номер",
        "code": "Counter",
        "desc": "Порядковый номер обьекта в рамках родителя",
        "updatedate": "2018-12-14",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 33663074,
      "changeid": 51292720,
      "changeidend": 0,
      "value": "12",
      "updatedate": "2019-12-14",
      "startdate": "1900-01-01",
      "enddate": "2079-06-06"
    },
    {
      "id": 197163408,
      "typeid": {
        "id": 7,
        "name": "OKTMO",
        "code": "OKTMO",
        "desc": "OKTMO",
        "updatedate": "2018-06-19",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 33663074,
      "changeid": 51292720,
      "changeidend": 51293350,
      "value": "93643425",
      "updatedate": "2019-12-14",
      "startdate": "1900-01-01",
      "enddate": "2019-12-13"
    },
    {
      "id": 197163454,
      "typeid": {
        "id": 7,
        "name": "OKTMO",
        "code": "OKTMO",
        "desc": "OKTMO",
        "updatedate": "2018-06-19",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 33663074,
      "changeid": 51293350,
      "changeidend": 0,
      "value": "93643425101",
      "updatedate": "2019-12-14",
      "startdate": "2019-12-13",
      "enddate": "2079-06-06"
    },
    {
      "id": 197163423,
      "typeid": {
        "id": 13,
        "name": "Реестровый номер",
        "code": "ReestrNum",
        "desc": "Реестровый номер адресного объекта",
        "updatedate": "2018-11-12",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 33663074,
      "changeid": 51292720,
      "changeidend": 51293350,
      "value": "936434251010000000220012000000005",
      "updatedate": "2019-12-14",
      "startdate": "1900-01-01",
      "enddate": "2019-12-13"
    },
    {
      "id": 197163397,
      "typeid": {
        "id": 3,
        "name": "ИНН ФЛ ТЕР УЧ",
        "code": "territorialifnsflcode",
        "desc": "Территориальный участок ИФНС ЮЛ",
        "updatedate": "2018-06-15",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 33663074,
      "changeid": 51292720,
      "changeidend": 158819225,
      "value": "1717",
      "updatedate": "2020-11-21",
      "startdate": "1900-01-01",
      "enddate": "2020-11-21"
    },
    {
      "id": 679599958,
      "typeid": {
        "id": 1,
        "name": "ИФНС ФЛ",
        "code": "IFNSFL",
        "desc": "ИФНС ФЛ",
        "updatedate": "2018-06-15",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 33663074,
      "changeid": 158819225,
      "changeidend": 0,
      "value": "1700",
      "updatedate": "2020-11-21",
      "startdate": "2020-11-21",
      "enddate": "2079-06-06"
    },
    {
      "id": 197163402,
      "typeid": {
        "id": 4,
        "name": "ИФНС ЮЛ ТЕР УЧ",
        "code": "territorialifnsulcode",
        "desc": "Территориальный участок ИФНС ФЛ",
        "updatedate": "2018-06-15",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 33663074,
      "changeid": 51292720,
      "changeidend": 158819225,
      "value": "1717",
      "updatedate": "2020-11-21",
      "startdate": "1900-01-01",
      "enddate": "2020-11-21"
    },
    {
      "id": 197161768,
      "typeid": {
        "id": 2,
        "name": "ИФНС ЮЛ",
        "code": "IFNSUL",
        "desc": "ИФНС ЮЛ",
        "updatedate": "2018-06-15",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 33663074,
      "changeid": 51292720,
      "changeidend": 158819225,
      "value": "1720",
      "updatedate": "2020-11-21",
      "startdate": "1900-01-01",
      "enddate": "2020-11-21"
    },
    {
      "id": 679666368,
      "typeid": {
        "id": 2,
        "name": "ИФНС ЮЛ",
        "code": "IFNSUL",
        "desc": "ИФНС ЮЛ",
        "updatedate": "2018-06-15",
        "startdate": "2011-11-01",
        "enddate": "2079-06-06",
        "isactive": true
      },
      "objectid": 33663074,
      "changeid": 158819225,
      "changeidend": 0,
      "value": "1700",
      "updatedate": "2020-11-21",
      "startdate": "2020-11-21",
      "enddate": "2079-06-06"
    }
  ],
  "housetype": {
    "id": 3,
    "name": "Домовладение",
    "shortname": "двлд.",
    "desc": "Домовладение",
    "updatedate": "1900-01-01",
    "startdate": "1900-01-01",
    "enddate": "2015-11-05",
    "isactive": false
  },
  "addtype1": null,
  "addtype2": null,
  "objectguid": "85e4ae37-bd1a-42ec-ad27-5c4343d53adf",
  "changeid": 51293350,
  "housenum": "12",
  "addnum1": null,
  "addnum2": null,
  "previd": 20009203,
  "nextid": 0,
  "updatedate": "2019-12-14",
  "startdate": "2019-12-13",
  "enddate": "2079-06-06",
  "isactual": true,
  "isactive": true,
  "opertypeid": 20,
  "objectid": 33663074
}УстановкаУстановитеm3-rest-gar:pip install m3-rest-gar2. Добавьтеrest_framework, `django_filters,m3_gar,m3_rest_garвINSTALLED_APPSи установитеDjangoFilterBackendINSTALLED_APPS = [
    ...,
    'rest_framework',
    'django_filters',
    'm3_gar',
    'm3_rest_gar',
]

REST_FRAMEWORK = {
    ...,
    'DEFAULT_FILTER_BACKENDS': [
        'django_filters.rest_framework.DjangoFilterBackend',
    ],
}Настройтеm3_garи импортируйте данныеДобавьте urlpatterns m3_rest_garurlpatterns = [
    ...,
    path('gar/', include('m3_rest_gar.urls')),
]Настройка аутентификации OAuth2Установить пакет OAuth2pip install django-oauth-toolkitНастроить приложение (settings.py)INSTALLED_APPS = [
    ...
    'oauth2_provider',
]

MIDDLEWARE = [
    ...,
    'oauth2_provider.middleware.OAuth2TokenMiddleware',
]

AUTHENTICATION_BACKENDS = [
    'oauth2_provider.backends.OAuth2Backend',
    # Если нужен доступ в /admin:
    # 'django.contrib.auth.backends.ModelBackend',
]

REST_FRAMEWORK = {
    ...,
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'oauth2_provider.contrib.rest_framework.OAuth2Authentication',
    ],
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticated',
    ],
}Добавить urlpatterns (urls.py)urlpatterns = patterns('',
    ...
    path('oauth2/', include('oauth2_provider.urls', namespace='oauth2_provider')),
)Выполнить миграцию базыpython manage.py migrateРегистрация клиентского приложенияЗаходим в django-admin /adminВ разделе Users создаем пользователя от имени которого будут выполняться запросы.
(Можно всех клиентов привязать к одному пользователю, они всё-равно будут отличаться номером клиента)В разделе Applications создаем клиента,
* выбираем пользователя
*Client typeуказываемConfidencial*Authorization grant typeуказываемResource owner password-based* сохраняем клиентаОбращение к сервису из клиентского приложенияПолучение токенаДля получения токена нужно выполнить POST-запрос:POST /oauth2/token/Параметры:client_id:Тип: строка символов. Идентификатор клиентского приложенияclient_secret:Тип: строка символов. Секретный ключ клиентского приложенияgrant_type:Тип: строка символов. Тип идентификации клиента. Доступные значения:passwordusername:Тип: строка символов. Имя пользователя, которому выдается токенpassword:Тип: строка символов. Пароль пользователяРезультат:Тип: application/json.{
    "access_token": токен для доступа к сервису,
    "token_type": "Bearer",
    "expires_in": время жизни токена в секундах,
    "refresh_token": токен для обновления,
    "scope": "read"
}Запрос данныхПосле получения токена его нужно указать в заголовке запроса к сервису:::Authorization: Bearer <токен>Локальное развертывание сервиса с использованием PyCharm (для разработчиков)Создать отдельный Django-проект с виртуальным окружением (по умолчанию PROJECT_DIR/venv). Здесь и далее PROJECT_DIR - директория PyCharm проекта.Установить пакеты в виртуальное окружение:pip install --src PROJECT_DIR -e git+ssh://git@stash.bars-open.ru:7999/m3/m3-gar.git@master#egg=m3_gar
pip install --src PROJECT_DIR -e git+ssh://git@stash.bars-open.ru:7999/m3/m3-rest-gar.git@master#egg=m3_rest_garОтметить следующие директории как директории с исходниками (Mark as Sources Root):PROJECT_DIR/m3-gar/m3_gar
PROJECT_DIR/m3-rest-gar/m3_rest_garСоздать в директории PROJECT_DIR/m3-rest-gar/test_project/test_project файл local_settings.py, скопировать в него содержимое dev_settings.py, подменить настройки, если потребуется.Актуализировать настройки PyCharm. File->Settings->Languages & Frameworks->Django:Django project root: PROJECT_DIR/m3-rest-gar/test_project
Settings: PROJECT_DIR/m3-rest-gar/test_project/test_project/local_settings.py.Запустить Django сервер.В клиентском приложении, которое будет использовать локально развернутый m3-rest-gar, необходимо подменить URL сервиса ГАР на локальный.