Добрый день!
имеются две модели:
class Hotel(models.Model):
name = models.CharField('Наименование отеля', max_length=150)
#я убрал здесь некоторые поля
slug = models.SlugField(max_length=150, unique=True)
def __str__(self):
return self.name
class HotelImage(models.Model):
hotel = models.ForeignKey(Hotel, on_delete=models.CASCADE, verbose_name='Отель')
#slug = ... (здесь я хочу получить slug из класса Hotel)
image = models.ImageField(upload_to=get_upload_path)
Мне нужно получить атрибут slug из модели Hotel чтобы передать ее в функцию get_upload_path, которая переименовывает файл и формирует путь для его загрузки. С другими моделями где поле slug создано так: slug = models.SlugField(max_length=150, unique=True) - функция работает.
я пробовал так:
slug = Hotel.slug
#Ошибка: HotelImage has no field named 'slug'
slug = str(Hotel.slug)
#Ошибка: Storage can not find an available filename for "img_hotels\<django.db.models.query_utils.DeferredAttribute object at 0x000000A1639F5310>\django.db.models.query_utils.DeferredAttribute_object_at_0x000000A1639F5310-3d6ae_VIhJkIQ.jpg". Please make sure that the corresponding file field allows sufficient "max_length".
во-втором случае вроде бы функция срабатывает, но ей передается не значение поля slug, а какие-то его "внутренности" в строковом представлении, длина которых слишком велика.
Подскажите, пожалуйста, куда копать? Может быть это поле нужно получать через метод класса?
Спасибо!