2013-02-27 79 views
-7

我在這裏,因爲我有一個問題。我正在製作一個關於所有球員,錦標賽,球隊等足球(足球)的網站,我無法修正:足球數據庫

我創建了第一張表,玩家。接下來,另一支球隊。我不知道我是否必須加入一個球員或一個球隊的球員。否則,我需要一個比賽系統,統計每個球員,這是我的問題。使用Django,我無法獲得隊伍的球員列表。

好了,這是我的計劃:

- Player 
--- Name 
--- First Name 

- Team 
--- Name 
--- Player() 

- Championship 
--- Name 
--- Team() 

- Match 
--- Championnat() 
--- date 

- Goal 
--- Match 
--- Player 
--- Score 

我想這樣的一個表:

ASSE    PSG 
Player 1 0 0 Player 1 
Player 2 0 0 Player 2 
Player 3 0 0 Player 3 
Player 4 0 0 Player 4 
Player 5 0 0 Player 5 
Player 6 0 0 Player 6 
Player 7 0 0 Player 7 
Player 8 0 1 Player 8 
Player 9 1 0 Player 9 
Player 10 0 0 Player 10 
Player 11 1 0 Player 11 
Player 12 0 0 Player 12 
Player 13 0 0 Player 13 
      2 1 

如何做到這一點?

回答

4

忘記Django的或實現與關係開始:

A LEAGUE has two or more TEAMs 
A TEAM has zero or more PLAYERs 
A MATCH happens at a specific LOCATION and TIME, involving two TEAMs. 
A TEAM plays in zero or more MATCHes. (Hint: many-to-many JOIN needed.) 

想簡單。獲得正確的關係,然後建立你的模式。

0

這是有點不清楚你到底在問什麼。如果你想通過哪些表來引用其他表,那麼你會希望玩家表引用一個團隊(因爲多個玩家將在單個團隊中,但從來沒有多個團隊在單個玩家)

class Player(models.Model): 
    name = models.CharField(max_length=64) 
    first_name = models.CharField(max_length=32) 
    team = models.ForeignKey('Team') 


class Team(models.Model): 
    name = models.CharFIeld(max_length=32) 

    def __unicode__(self): 
     return self.name 

這種方式如果你想知道一個球員是什麼隊,那麼你最終只會打電話Player.team,它會返回隊的__unicode__功能。我相信在這個例子中,你應該能夠解析出你必須做的其餘表格。

其他幫助:https://docs.djangoproject.com/en/dev/topics/db/models/

編輯 如果你正在尋找有Team觀看與播放器(反之亦然),則:

admin.py

from site.models import Team, Player 

class PlayerTeamInline(admin.StackedInline) 
    model = Team 
    extra = 0 #so only one record will show up inline 

class PlayerAdmin(PlayerAdmin): 
    list_display = ('name', 'team') 
    search_fields = ['name', 'team'] 
    inlines = (PlayerTeamInline,) 

class PlayerInline(admin.StackedInline) 
    model = Player 

class TeamAdmin(TeamAdmin): 
    inlines = (PlayerInline,) 


admin.site.unregister(Player) 
admin.site.register(Player, PlayerAdmin) 

admin.site.unregister(Team) 
admin.siteregister(Team, TeamAdmin) 

這將在Player頁面上列出Team,並且w看看Player的列表,你會看到團隊專欄,以及有能力通過Team進行搜索。但是,所有這些都在文檔中涵蓋。

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.inlines

+0

我並不精確,但我的問題是關於我的管理面板... 你說什麼,我的錯誤就解決了,因爲沒有匹配系統。而且,只有使用模型,我不能在團隊中訪問團隊的球員,這是我需要的。 而且,多支球隊可以擁有同一名球員(如羅納爾多:葡萄牙和皇馬),不是嗎? – cmizzi 2013-02-27 19:23:01

+0

我編輯了我的答案,我想你在問如何自定義管理視圖/面板。從「玩家」列表中你可以做很多事情(你可以讓它顯示他們所在的團隊),或者你可以在線顯示它們。 – GordonsBeard 2013-02-27 19:33:18

+0

這不是我想要的。 我想,當我編輯我的球隊時,例如讓我成爲球員中的球員。你明白我的意思嗎 ? – cmizzi 2013-02-27 19:58:06