Global API refactoring

This commit is contained in:
2022-10-09 13:43:06 +03:00
parent ad659b5f30
commit 47359a7932
11 changed files with 471 additions and 213 deletions

View File

@@ -9,6 +9,8 @@ from account.models import SiteUser
from datetime import datetime
import os
from PIL import Image
class City(models.Model):
code = models.CharField(primary_key=True, max_length=20, verbose_name="Код города", validators=[
@@ -180,7 +182,7 @@ class Order(models.Model):
create_time = models.DateTimeField(default=datetime.now, editable=False, verbose_name="Время создания")
moderated = models.BooleanField(default=True, verbose_name="Модерирован")
published = models.BooleanField(default=False, verbose_name="Опубликован")
published = models.BooleanField(default=True, verbose_name="Опубликован")
def clean(self):
errors = {}
@@ -242,16 +244,27 @@ def _upload_image_filename(instance, filename):
return "order-images/" + fn
# TOFIX сделать удаление ненужных картинок из файловой системы
class OrderImage(models.Model):
MAX_IMAGES = 10
order = models.ForeignKey(Order, on_delete=models.CASCADE, related_name="order", verbose_name="Заказ")
image = models.ImageField(upload_to=_upload_image_filename, verbose_name="Картинка",
width_field=None, height_field=None)
image = models.ImageField(upload_to=_upload_image_filename, verbose_name="Картинка")
def __str__(self):
return f"{self.id}: {self.order}"
def save(self, *args, **kwargs):
super(OrderImage, self).save(*args, **kwargs)
img = Image.open(self.image.path)
if img.width > 1920 or img.height > 1080:
# нужно урезать фортку так, чтобы пропорции уменьшились пропорционально
output_size = (1920, 1080)
img.thumbnail(output_size)
img.save(self.image.path)
class OrderRespond(models.Model):
create_time = models.DateTimeField(default=datetime.now, editable=False, verbose_name="Время отклика")