Описание: Данное приложение представляет собой онлайн платформу торговой сети электроники.
Технические требования:
- 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