All checks were successful
Build and Push Docker Image / build (push) Successful in 26s
- Создан шаблон `catalog/index.html` с поддержкой хлебных крошек и активного раздела - Добавлены модели `Category` и `Item` с настройкой админ-панели - Реализован обработчик URL для отображения категорий и страницы каталога - Добавлены стили `catalog.css` и `error.css` для новых элементов - Переведён проект в production режим (DEBUG=False)
32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
from django.db import models
|
||
|
||
|
||
class Category(models.Model):
|
||
name = models.CharField(max_length=255, verbose_name='Название')
|
||
slug = models.SlugField(unique=True, verbose_name='URL')
|
||
|
||
class Meta:
|
||
verbose_name = 'Категория'
|
||
verbose_name_plural = 'Категории'
|
||
|
||
def __str__(self):
|
||
return self.name
|
||
|
||
|
||
class Item(models.Model):
|
||
name = models.CharField(max_length=255, verbose_name='Название')
|
||
slug = models.SlugField(unique=True, verbose_name='URL')
|
||
category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name='items', verbose_name='Категория')
|
||
description = models.TextField(blank=True, verbose_name='Описание')
|
||
price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='Цена')
|
||
is_available = models.BooleanField(default=True, verbose_name='В наличии')
|
||
created_at = models.DateTimeField(auto_now_add=True, verbose_name='Дата создания')
|
||
updated_at = models.DateTimeField(auto_now=True, verbose_name='Дата обновления')
|
||
|
||
class Meta:
|
||
verbose_name = 'Товар'
|
||
verbose_name_plural = 'Товары'
|
||
|
||
def __str__(self):
|
||
return self.name
|