67 lines
2.3 KiB
Python
67 lines
2.3 KiB
Python
from django.db import models
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from apps.shared.models import AbstractBaseModel
|
|
|
|
|
|
class Photo(AbstractBaseModel):
|
|
name = models.CharField(
|
|
max_length=255, blank=True, null=True, verbose_name=_("Nomi")
|
|
)
|
|
description = models.TextField(blank=True, null=True, verbose_name=_("Tavsif"))
|
|
image = models.ImageField(upload_to="media/", verbose_name=_("Fayl"))
|
|
type = models.CharField(
|
|
max_length=255, blank=True, null=True, verbose_name=_("Fayl turi")
|
|
)
|
|
size = models.BigIntegerField(
|
|
blank=True, null=True, default=0, verbose_name=_("Hajmi")
|
|
)
|
|
|
|
def save(self, *args, **kwargs):
|
|
self.type = self.image.name.split(".")[-1]
|
|
self.size = self.image.size
|
|
if self.name is None:
|
|
self.name = (
|
|
self.image.name if self.image.name is not None else f"Media {self.id}"
|
|
)
|
|
super().save(*args, **kwargs)
|
|
|
|
class Meta:
|
|
verbose_name = _("Барча кўрнишлар")
|
|
verbose_name_plural = _("Барча кўрнишлар")
|
|
ordering = ["-created_at"]
|
|
|
|
def __str__(self) -> str:
|
|
return str(self.description) if str(self.description) else f"Photo {self.id}"
|
|
|
|
|
|
class Gallery(AbstractBaseModel):
|
|
name = models.CharField(
|
|
max_length=255, blank=True, null=True, verbose_name=_("Nomi")
|
|
)
|
|
description = models.TextField(blank=True, null=True, verbose_name=_("Tavsif"))
|
|
image = models.ImageField(upload_to="media/", verbose_name=_("Fayl"))
|
|
type = models.CharField(
|
|
max_length=255, blank=True, null=True, verbose_name=_("Fayl turi")
|
|
)
|
|
size = models.BigIntegerField(
|
|
blank=True, null=True, default=0, verbose_name=_("Hajmi")
|
|
)
|
|
|
|
def save(self, *args, **kwargs):
|
|
self.type = self.image.name.split(".")[-1]
|
|
self.size = self.image.size
|
|
if self.name is None:
|
|
self.name = (
|
|
self.image.name if self.image.name is not None else f"Media {self.id}"
|
|
)
|
|
super().save(*args, **kwargs)
|
|
|
|
class Meta:
|
|
verbose_name = _("Galereya")
|
|
verbose_name_plural = _("Galereya")
|
|
ordering = ["-created_at"]
|
|
|
|
def __str__(self) -> str:
|
|
return str(self.description) if str(self.description) else f"Gallery {self.id}"
|