Django - MySQL | select_related() не получает поля из объединенных таблиц

Я новичок в Django и использую MySQL в качестве базы данных для своего приложения (я проверял базу данных для генерации моделей). Версия Django - 2.2

Модели выглядят следующим образом,

и когда я пытаюсь получить детали из db, я не могу получить поля из родительской таблицы

Здесь я сделал MarketInfo.selected_related('CommodityInfo') и в идеале я должен иметь возможность получить все поля из таблицы CommodityInfo. Для примера, я взял по одной записи из обеих таблиц CommodityInfo и MarketInfo, которые связаны (market_info.COMMODITY_INFO_ID = commodity_info.ID), а затем попытался получить доступ к commodity_category_id, но возникает ошибка, несмотря на то, что commodity_category_id существует в таблице commodity_info, с которой market_info уже внутренне объединен.

Вывод из оболочки,

>>> from main.models import CommodityCategory,CommodityInfo,MarketInfo
>>> CommodityInfo.objects.all().values().first()
{'id': 881, 'commodity_category_id': 301, 'name': 'mustard', 'description': 'Mustard / ಸಾಸುವೆ', 'created_by': 'BATCH_1', 'created_dttm': datetime.datetime(2020, 5, 3, 13, 36, 43, 235000, tzinfo=<UTC>), 'modified_by': 'BATCH_1', 'modified_dttm': datetime.datetime(2020, 5, 3, 13, 36, 43, 235000, tzinfo=<UTC>), 'commodity_link': 'https://www.krishimaratavahini.kar.nic.in/MainPage/DailyMrktPriceRep2.aspx?Rep=Com&CommCode=12&VarCode=999&Date=03/05/2020&CommName=Mustard/ಸಾಸುವೆ&VarName=Other/ಇತರೆ'}
>>> MarketInfo.objects.select_related('commodity_info').values().first()
{'id': 7447, 'commodity_info_id': 881, 'name': 'bengaluru', 'town': 'bengaluru', 'created_by': 'BATCH_1', 'created_dttm': datetime.datetime(2020, 5, 3, 13, 36, 43, 245000, tzinfo=<UTC>), 'modified_by': 'BATCH_1', 'modified_dttm': datetime.datetime(2020, 5, 3, 13, 36, 43, 245000, tzinfo=<UTC>)}
>>> tmp=MarketInfo.objects.select_related('commodity_info').values().first()
>>> tmp.commodity_category_id
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'commodity_category_id'
>>> print(tmp.query)
SELECT `market_info`.`ID`, `market_info`.`COMMODITY_INFO_ID`, `market_info`.`NAME`, `market_info`.`TOWN`, `market_info`.`CREATED_BY`, `market_info`.`CREATED_DTTM`, `market_info`.`MODIFIED_BY`, `market_info`.`MODIFIED_DTTM`, `commodity_info`.`ID`, `commodity_info`.`COMMODITY_CATEGORY_ID`, `commodity_info`.`NAME`, `commodity_info`.`DESCRIPTION`, `commodity_info`.`CREATED_BY`, `commodity_info`.`CREATED_DTTM`, `commodity_info`.`MODIFIED_BY`, `commodity_info`.`MODIFIED_DTTM`, `commodity_info`.`COMMODITY_LINK` FROM `market_info` INNER JOIN `commodity_info` ON (`market_info`.`COMMODITY_INFO_ID` = `commodity_info`.`ID`)

Где я могу ошибиться?

Вернуться на верх