Django ORM извлечение данных из нескольких таблиц

Я новичок в Python и Django, а также. Я пытаюсь использовать Django ORM для извлечения данных из базы данных, но я не могу это сделать. В моей базе данных три таблицы:USER,INVESTMENT_NAME и WALLET. Столбцы в пользовательской таблице - это id(первичный ключ) и name, столбцы в таблице investment_name - это id(первичный ключ) и name, а в таблице кошелька есть user_id(идентификатор ссылки на внешний ключ в пользовательской таблице), inv_id(идентификатор ссылки на внешний ключ в investment_name таблица), дата, количество, сумма и текущая цена. У меня проблемы с получением данных, которые отображают имя пользователя, имя инвестиции, дату, количество, сумму, текущую цену, используя DJANGO ORM, так как я не знаю, как это сделать для нескольких таблиц.

Любые предложения, пожалуйста.

2 ответа

Следует использовать подчеркивание doulble для получения полей отношения ForeignKey (One-To-Many) таблицы и related_name (field_name _set по умолчанию) для доступа к объектам Many-To-One (ForeignKey, который ссылается на таблицу). Есть документы: поиски, которые охватывают отношения

Для исполнения также полезно использовать select_related и http://select_related/.

Выполните запрос Django ORM для таблицы Wallet. Поскольку существует ссылка на внешний ключ для обеих других таблиц в этой таблице, вы можете получить доступ к объектам с помощью методов получения. Например -

w = Wallet.objects.all()
w[0].user.name  # This is the username
w[0].investment.name  # This is the investment name
w[0].date  # This is the wallet date

Используйте официальную документацию Django для более глубокого понимания запросов orm и способов их оптимизации.

Другие вопросы по тегам