@astatium135

Как в модели django создать фальшифое поле?

Есть простенький класс
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)
, только рабочее.
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы