Python Django-查询多级外键

Python Django-查询多级外键,python,django,django-views,foreign-keys,Python,Django,Django Views,Foreign Keys,我试图理解在Django中查询多级外键表的概念,我真的希望有人能帮助我 因此,我试图在Django中创建一个列表视图,其中显示球员、他们的得分和一些相关信息,如他们的专业水平。数据库结构如下所示: Players Table ------------- id name <field 1> <field 2> <field N> Level Table ----------- id level_text Player Name Player Score

我试图理解在Django中查询多级外键表的概念,我真的希望有人能帮助我

因此,我试图在Django中创建一个列表视图,其中显示球员、他们的得分和一些相关信息,如他们的专业水平。数据库结构如下所示:

Players Table
-------------
id
name
<field 1>
<field 2>
<field N>
Level Table
-----------
id
level_text
Player Name   Player Score    Player Level
-----------   -------------   ------------
Blue_Marvel   10000           Maestro
Man_At_Arms   51              Noob
P_K_In_Debt   1230000         God 
下面是一个级别表:

Players Table
-------------
id
name
<field 1>
<field 2>
<field N>
Level Table
-----------
id
level_text
Player Name   Player Score    Player Level
-----------   -------------   ------------
Blue_Marvel   10000           Maestro
Man_At_Arms   51              Noob
P_K_In_Debt   1230000         God 
我想要的是创建如下列表:

Players Table
-------------
id
name
<field 1>
<field 2>
<field N>
Level Table
-----------
id
level_text
Player Name   Player Score    Player Level
-----------   -------------   ------------
Blue_Marvel   10000           Maestro
Man_At_Arms   51              Noob
P_K_In_Debt   1230000         God 
正如您所猜测的,这三列中的每一列的数据都需要来自三个不同的表

我对Django非常陌生,只能执行一些基本的查询。我知道我可以做Player.object.all,我得到了所有的玩家,有一个定义的玩家模型。同样地,我可以做Level.object.all,并且我可以获得所有的专业技能级别

然而,我不知道如何继续构建一个列表,如上面的球员姓名、分数和等级文本

感谢您的帮助。假设有一个等级和分数模型,有没有一个简单的方法让我创建上面的列表?如果这些模型不可用,Django query是否有任何巧妙的方法来实现这一点


我真的很感激任何指点

对我来说,这看起来像是需要一个在PlayerScore表上实际映射的列表视图:表中的每一行都有一行在输出中,反之亦然

唯一让这个案例更特殊的想法是,我们还想获取玩家的名字。通常,您可以使用.annotate.来完成此操作。。在要选择的值上。因此,我们可以在这里定义:

当然,我们还需要将URL链接到此视图:

# urls.py

from django.urls import path

from app.views import PlayerScoreListView

urlpatterns = [
    path('playerscore/', PlayerScoreListView.as_view(), name='playerscorelist'),
]

当然,以上是一个原始的实现。为了显示所有相关内容,并使页面看起来美观,还有一些工作要做。

但是每一行都映射到一个玩家的核心行,对吗?如果你发布实际的模型,你的问题会更清楚。@WillemVanOnsem是的,每一行映射到一个玩家的分数。分数是为一个特定的游戏事件显示的。@DanielRoseman-不幸的是,我甚至不知道模型在哪里,这是一个非常传统的django应用程序,由许多开发人员长期开发。。。我遇到过许多与这些表格相关的模型。假设模型可用,我试图理解如何查询这些。如果不知道模型,你就无法编写查询。我对你的帮助感激不尽!我会试试这个,让你知道它是怎么回事,再次感谢!