团队有一个名字。玩家属于团队,玩家也有速度和国籍。结果返回高速球员的数量,如果他们没有达到所需的速度,他们的国籍将被记录。
models
team -> name
player -> belongsto(foreign key to team),speed, nationality
Details -> fastspeed, nationality, team( foreign key to team)
view.py
speed = 5
loop through all the players in a team
if player.speed > 5
speed += 1
else
player.nationality
详细信息应返回速度超过5的玩家数量,并返回该团队中所有玩家的国籍。
team number fastspeed| nationalities
---------- -------------- --------------
1 5 American
French
British
----------------------------------------
2 3 German
Australian
每个团队正在返回多个国籍。找出有多少快速玩家很容易,我们只使用上面定义的增量值。但是,找出一个团队中每个球员的角色的民族似乎并不那么容易。
我想定义一个列表
nationalitylist = list[] and then doing
else nationality = player.nationality
然后可以通过details = details()
返回然后可以通过
传递给细节 details = details()
details.nationality=nationalitylist
努力寻找如何通过每支球队每个球员的国籍。我期待这很容易。
答案 0 :(得分:0)
好的,我会帮助你解决这个问题。我对这个问题的理解是你希望获得一个拥有速度为5或者以下的玩家的所有国籍的列表。
首先,我们定义一个空的国籍列表,然后迭代所有玩家,检查他们的速度。如果他们的速度是5或更低,我们将他们添加到国籍列表。
nationalities = []
if player.speed > 5:
speed +1
else:
nationalities.append(player.nationality)
这将为我们提供一个拥有速度低于5的玩家的每个国籍的列表。但是,如果有多个同一国籍的慢速玩家,那么该国籍将在您的列表中多次出现。
如果您只想在列表中显示一次该国籍,那么我们可以使用以下命令将列表转换为集合,然后再将其转换为列表。这将删除任何重复的条目。
nationalities = list(set(nationalities))
在数据库中存储此列表取决于您使用的Django版本和数据库。
如果您使用的是PostgreSQL,则可以访问阵列字段,以便直接存储列表。 (https://docs.djangoproject.com/en/1.9/ref/contrib/postgres/fields/#arrayfield)
否则,您可能需要考虑将列表转储到json,然后可以将其存储为CharField或TextField。
import json
json_nationalities = json.dumps(nationalities)