Есть простенький класс
class Image(models.Model):
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
name = models.TextField(verbose_name="базовое имя изображения")
base_image = models.ImageField(verbose_name="базовое изображение")
resize_image = models.ImageField(verbose_name="изменённое изображение", blank=True, null=True)
class Meta:
verbose_name = "изображение"
verbose_name_plural = "изображения"
def __str__(self):
return self.name
Необходимо добавить вычисляемые "фальшивые" поля, к-е, не будучи отражены в базе, тем не менее бы воспринимались django как нормальные models.Field, т.е. были доступны в админке, отдавались graphen'ом без бубна и т.д. Что-то вроде
def get_image(self) -> str:
if self.resize_image:
return self.resize_image
else:
return self.base_image
image = property(get_image)
, только рабочее.