Скриншот архива с проектом

Задание
Разработать веб-приложение на Django, которое поможет управлять процессом заказов в компании. Приложение должно предоставлять интерфейс для создания новых заказов, отслеживания статуса заказов и генерации отчетов о выполненных заказах.
Функционал программы
Пользователю доступна возможность:
- создавать учетные записи;
- вести учет товаров: приложение позволяет добавлять, редактировать и удалять товары средствами Django – административная часть и форма;
- вести учет клиентов: приложение позволяет добавлять, редактировать и удалять клиентов средствами Django – административная часть и форма;
- вести учет и отслеживание заказов – приложение позволяет добавлять, редактировать и удалять заказы, а также отслеживать их статус средствами Django – административная часть и форма.
- печать отчетов, поиск по клиенту и построение графика показывающего на какую сумму был продан товар в конкретную дату.
Содержание отчета к программе

Фрагмент программного кода
from django.db import models
from django.db.models.signals import pre_save
from django.dispatch import receiver
# Create your models here.
class Product(models.Model):
objects = None
name = models.CharField(max_length=100, help_text="Введите товар", verbose_name="Товар")
description = models.TextField(help_text="Введите описание товара", verbose_name="Описание товара")
price = models.DecimalField(help_text="Введите цену товара", verbose_name="Цена товара", max_digits=10,
decimal_places=2)
photo = models.ImageField(upload_to='images',
help_text="Введите фото",
verbose_name="Фото товара",
null=True, blank=True)
def __str__(self):
return f'Наименование товара: {self.name} Описание товара: {self.description}'
class Meta:
verbose_name = 'Товар'
verbose_name_plural = 'Товары'
class Client(models.Model):
objects = None
name = models.CharField(max_length=100, verbose_name='Имя клиента')
email = models.EmailField(verbose_name='Email')
phone = models.CharField(max_length=15, verbose_name='Телефон')
photo = models.ImageField(upload_to='images',
help_text="Введите фото",
verbose_name="Фото клиента",
null=True, blank=True)
def __str__(self):
return self.name
class Meta:
verbose_name = 'Клиент'
verbose_name_plural = 'Клиенты'
class Order(models.Model):
objects = None
order_number = models.CharField(max_length=100, verbose_name='Номер заказа')
client = models.ForeignKey(Client, on_delete=models.CASCADE, related_name='orders', verbose_name='Клиент')
products = models.ManyToManyField(Product, verbose_name="Товар")
photo = models.ImageField(upload_to='images',
help_text="Введите фото",
verbose_name="Фото товара",
null=True, blank=True)
photo1 = models.ImageField(upload_to='images',
help_text="Введите фото",
verbose_name="Фото товара",
null=True, blank=True)
order_date = models.DateField(verbose_name='Дата заказа')
order_amount = models.DecimalField(verbose_name="Сумма заказа", max_digits=10, decimal_places=2)
ORDER_STATUS_CHOICES = [
('Поступил', 'Поступил'),
('Выполняется', 'Выполняется'),
('Закрыт', 'Закрыт'),
]
status = models.CharField(max_length=50, choices=ORDER_STATUS_CHOICES, verbose_name='Статус')
completed = models.BooleanField(default=False, verbose_name='Заказ завершен')
completion_date = models.DateField(null=True, blank=True, verbose_name='Дата завершения')
def display_products(self):
return ", ".join([product.name for product in self.products.all()])
display_products.short_description = 'Товары'
def __str__(self):
return f'{self.order_number} {self.client}'
class Meta:
verbose_name = 'Заказ'
verbose_name_plural = 'Заказы'
@receiver(pre_save, sender=Order)
def update_completion_date(sender, instance, **kwargs):
if instance.completed and not instance.completion_date:
instance.completion_date = instance.date_created
Пояснения по запуску программы
Для эффективной работы с приложением вам потребуется:
- редактор кода VS Code - скачать можно тут - https://code.visualstudio.com/download или PyCharm Community или Prof - https://www.jetbrains.com/ru-ru/pycharm/download/?section=windows
- интерпретатор языка Python, скачать можно тут - https://www.python.org/downloads/ Однако скачивать версию 3.12 не советую, есть проблемы с установкой библиотек. Рнкомендуемая версия - 3.11.7.
- После установки всего выше описанного, настройте VS Code для работы с Python установив необходимые расширения (см. инструкцию - https://youtu.be/j5e5gwZgMH8) .
- Запускаете приложение и пользуетесь. Также вы можете самостоятельно выложить проект на Heroku.
Телеграм
-