Скриншот архива с проектом
Задание
Разработать веб-приложение на 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.
admin