from django.core.validators import MinValueValidator, MaxValueValidator from django.db import models class Category(models.Model): id = models.CharField('ID Категории', max_length=50, unique=True, primary_key=True, db_index=True) title = models.CharField('Название Категории', max_length=50) image = models.ImageField('Картинка категории') def __str__(self): return self.title class Meta: verbose_name = 'Категория' verbose_name_plural = 'Категории' class Product(models.Model): id = models.AutoField('ID Товара', unique=True, primary_key=True, db_index=True) title = models.CharField('Название Товара', max_length=50) description = models.TextField('Описание товара', max_length=300) price = models.PositiveIntegerField('Цена товара', validators=[ MinValueValidator(1), MaxValueValidator(999) ]) tags = models.TextField('Теги (Указывать через разделитель \'|\')', max_length=300) icons = models.ImageField('Иконка товара') category = models.ForeignKey(Category, on_delete=models.CASCADE) date = models.DateTimeField('Дата создания товара', auto_now=True) def __str__(self): return self.title class Meta: verbose_name = 'Товар' verbose_name_plural = 'Товары' class User(models.Model): id = models.AutoField('ID Пользователя', unique=True, primary_key=True, db_index=True) login = models.CharField('Логин', max_length=50) password = models.TextField('Описание товара', max_length=900) date = models.DateTimeField('Дата создания пользователя', auto_now=True) def __str__(self): return self.login class Meta: verbose_name = 'Пользователь' verbose_name_plural = 'Пользователи' class Review(models.Model): id = models.AutoField('ID Отзыва', unique=True, primary_key=True, db_index=True) commentary = models.TextField('Комментарий отзыва', max_length=300) rate = models.PositiveIntegerField('Оценка', validators=[ MinValueValidator(1), MaxValueValidator(5) ]) icons = models.ImageField('Изображение отзыва', null=True) product = models.ForeignKey(Product, on_delete=models.CASCADE) user = models.ForeignKey(User, on_delete=models.CASCADE) date = models.DateTimeField('Дата создания отзыва', auto_now=True) def __str__(self): return str(self.id) class Meta: verbose_name = 'Отзыв' verbose_name_plural = 'Отзывы'