Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
1 / 1 / 1
Регистрация: 16.09.2013
Сообщений: 21

Получить значение атрибута модели по ForeignKey

14.02.2021, 11:06. Показов 3060. Ответов 1

Студворк — интернет-сервис помощи студентам
Добрый день!

имеются две модели:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Hotel(models.Model):
    name = models.CharField('Наименование отеля', max_length=150)   
    image = models.ImageField(upload_to=get_upload_path, blank=True, verbose_name="Изображение отеля")
    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) - функция работает.

я пробовал так:
Code
1
2
3
4
5
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, а какие-то его "внутренности" в строковом представлении, длина которых слишком велика.

Подскажите, пожалуйста, куда копать? Может быть это поле нужно получать через метод класса?

Спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2021, 11:06
Ответы с готовыми решениями:

Как получить два атрибута у модели в html файле
Всем привет! @RequestMapping(value = &quot;/cars&quot;, params = &quot;request&quot;) public String showSomeAmountCars(HttpServletRequest request, Model...

Топ пользователей через ForeignKey поле модели
Суть: необходимо составить топ3 пользователей текущего месяца по показателю &quot;комментарии&quot;. Для выборки по датам использую pytz. ...

Получить значение атрибута
Все привет!!!!! есть div с таким атрибутам &lt;div id=&quot;elem&quot; data-bem='{&quot;sale-data-attributes&quot;:{ &quot;category&quot;:&quot;cars&quot;, ...

1
 Аватар для Wolflind
127 / 107 / 31
Регистрация: 17.03.2016
Сообщений: 445
Записей в блоге: 1
14.02.2021, 21:52
Не уверен но примерно так
Python
1
2
def get_upload_path(instance, filename):
   return f'{instance.hotel.slug}'
подробней https://docs.djangoproject.com... #filefield
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.02.2021, 21:52
Помогаю со студенческими работами здесь

Как получить значение из атрибута?
Атрибуты Attribut GetCustomAttributes GetField не очень понимаю атрибуты вот пример public class ObjectCodeAttribute : Attribute ...

Не могу получить значение атрибута
Доброго дня! Есть конструкция: &lt;div class=&quot;opt2&quot;&gt; &lt;div date_optid=&quot;5&quot; date_optflag=&quot;1&quot; class=&quot;option1...

Получить значение атрибута из таблицы БД
Есть таблица с несколькими атрибутами. Как получить запись из таблицы я знаю, но как получить только значение конкретного атрибута? Какой...

XSLT получить значение атрибута
Люди, помогите плз разобраться. Как мне передать columnName в качестве атрибута. &lt;xsl:variable name=&quot;i&quot;...

Фильтрация ForeignKey поля по другому ForeignKey полю в админке
Всем привет, форумчане и джангисты в частности. Нужна ваша помощь. Свой пример приводить не буду, т.к. слишком много лишнего, но на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru