Описание: Данное приложение представляет собой онлайн платформу торговой сети электроники.

Технические требования:

  • Python 3.8+
  • Django 3+
  • DRF 3.10+
  • PostgreSQL 10+

Сеть представляет собой иерархическую структуру из 3 уровней:

  • Завод
  • Розничная сеть
  • Индивидуальный предприниматель Каждое звено сети ссылается только на одного поставщика оборудования (не обязательно предыдущего по иерархии). Важно отметить, что уровень иерархии определяется не названием звена, а отношением к остальным элементам сети, т.е. завод всегда находится на 0 уровне, у него нет поставщиков, он сам производит товары и является поставщиком другим звеньям. Если розничная сеть относится напрямую к заводу, минуя остальные звенья - её уровень - 1. Так же поставщиком может быть компания того же звена, что и покупатель.

В приложении Network созданы модели:

  • Производитель (завод, всегда на 0 уровне)
  • Поставщик (может быть как торговая сеть, так и ИП)
  • Продукт
  • Поставка. Формирует структуру отношений между производителем, поставщиком и получателем, имеет поле "задолженность"

В админ-панели созданной поставки на странице поставки добавлено:

  • ссылка на «Поставщика»;
  • «admin action», очищающий задолженность перед поставщиком у выбранных объектов.

В админ-панели поставщика на странице добавлен:

  • фильтр по названию города;

С помощью DRF создан набор представлений:

  • CRUD для модели поставщика
  • CRUD для модели производителя
  • запрещено обновление через API поля «Задолженность перед поставщиком» (read-only field);
  • добавлена возможность фильтрации объектов по определенной стране.

Права доступа к API настроены так, чтобы только активные сотрудники имели доступ к API (is_staff=True и is_active=True).

Создание базы данных В терминале ввести команду: psql -U postgres

После входа в postgres создаем БД create database network;

Интеграция с базой данных Необходимо создать миграции и применить: python manage.py makemigrations python manage.py migrate

Создание суперпользователя Выполнить команду python manage.py csu

Запуск приложения на локальном хосте Для запуска приложения на локальной машине выполнить команду python manage.py runserver