Khaidoukova / supplier_network

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

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

  • 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

About


Languages

Language:Python 100.0%