Add PortfolioImage model for multiple images per portfolio item with inline admin
This commit is contained in:
@@ -172,7 +172,7 @@ class PortfolioItem(models.Model):
|
||||
description = models.TextField()
|
||||
client_name = models.CharField(max_length=200, blank=True)
|
||||
completion_date = models.DateField(blank=True, null=True)
|
||||
image = models.ImageField(upload_to='static/img/portfolio/', blank=True, null=True)
|
||||
image = models.ImageField(upload_to='static/img/portfolio/', blank=True, null=True, verbose_name='Главное изображение')
|
||||
featured = models.BooleanField(default=False)
|
||||
category = models.ForeignKey(Category, on_delete=models.SET_NULL, null=True, blank=True, related_name='portfolio_items')
|
||||
is_active = models.BooleanField(default=True)
|
||||
@@ -196,6 +196,23 @@ class PortfolioItem(models.Model):
|
||||
self.slug = slug
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
|
||||
class PortfolioImage(models.Model):
|
||||
"""Дополнительные изображения для элемента портфолио"""
|
||||
portfolio_item = models.ForeignKey(PortfolioItem, on_delete=models.CASCADE, related_name='gallery_images', verbose_name='Элемент портфолио')
|
||||
image = models.ImageField(upload_to='static/img/portfolio/gallery/', verbose_name='Изображение')
|
||||
caption = models.CharField(max_length=200, blank=True, verbose_name='Подпись к изображению')
|
||||
order = models.IntegerField(default=0, verbose_name='Порядок отображения')
|
||||
|
||||
class Meta:
|
||||
verbose_name = 'Изображение портфолио'
|
||||
verbose_name_plural = 'Изображения портфолио'
|
||||
ordering = ['order', 'id']
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.portfolio_item.title} - Изображение {self.order}"
|
||||
|
||||
|
||||
class Review(models.Model):
|
||||
client = models.ForeignKey(Client, on_delete=models.CASCADE, related_name='reviews')
|
||||
service = models.ForeignKey(Service, on_delete=models.CASCADE, related_name='reviews')
|
||||
|
||||
Reference in New Issue
Block a user