У меня есть 2 модели Django, очень похожие:
class ImageUp(models.mode)l:
image = models.ImageField(upload_to=file_upload_to)
additional_image_types = JSONField(null=True, blank=True)
filename = models.CharField(max_length=255, blank=True, null=True)
class LogoUp(models.model):
logo = models.ImageField(upload_to=file_upload_to)
additional_logo_types = JSONField(null=True, blank=True)
filename = models.CharField(max_length=255, blank=True, null=True)
Я извлекаю экземпляры моделей из базы данных и хочу выполнить некоторые манипуляции с изображениями / логотипами, поэтому я проверяю наличие атрибутов:
try:
additional = obj.getattr( f'additional_{attr_name}_types')
except AttributeError:
.....
attr_name
, я получил в качестве параметра, и может быть «логотип» или «изображение», но я все еще делаю проверку, в случае, если неправильный «префикс» был отправлен additional_..
, может бытьNULL, JSON пуст или JSON со значениями
Я получаю 2 ошибки:
object has no attribute 'getattr'
getattr(): attribute name must be string # if I check type of `f string` is <str>
Итак, я хочу знать, если это и image
или logo
, если addtional..
имеет значения