Хочу научиться делать магазин, и не только, на Django и столкнулся с проблемой - картинки сохраняются с исходным названием, что может привести к проблеме дублирования.
Как сказать Django переименовывать картинки уникальным именем?
Можно-ли при загрузке изображений сохранять их в нужном мне размере? С нужным мне расширением (сейчас, вроде, хорошим тоном является web)?
Модель создана, но, кажется в этом фреймворке эту логику нужно писать во views?
С учетом того, что загрузка осуществляется через админку не совсем ясно как это реализовать... Отдельным приложением?
class Product(models.Model):
title = models.CharField(max_length=255, unique=True)
slug = models.SlugField(max_length=255, unique=True)
description = models.TextField(blank=True)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
new_price = models.DecimalField(max_digits=10, decimal_places=2)
old_price = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
image = models.ImageField(upload_to='product', blank=True)
quantity = models.IntegerField()
available = models.BooleanField(default=True)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
class Meta:
verbose_name = 'Товар'
verbose_name_plural = 'Товары'
def get_url(self):
return reverse('product_detail', args=[self.category.slug, self.slug])
def __str__(self):
return self.title
class ProductImage(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
image = models.ImageField(upload_to='product', blank=True)