我對Python和Django都是全新的,所以請原諒,如果這個問題有點簡單。Django ModelForm或表格
我正在寫一個小應用程序來跟蹤檯球比賽的比分。我不需要解釋所有的細節,但涉及的基本對象是:
球隊有球員 比賽是兩隊之間(主客場) 比賽有一個遊戲集合。 每場比賽在兩名球員(每支球隊一名球員)之間,不包括已經參加比賽的球員。
我已經做了以下型號:
class Team(models.Model):
team_id = models.IntegerField(unique=True, max_length=5, blank=False,validators=[validate_five_digits])
name = models.CharField(max_length=50, blank=False, null=False)
class Player(models.Model):
id = models.IntegerField(unique=True, max_length=5, blank=False,validators=[validate_five_digits])
team = models.ForeignKey(Team, blank=True, null=True)
first_name = models.CharField(max_length=50, blank=False, null=False)
last_name = models.CharField(max_length=50, blank=False, null=False)
alias_name = models.CharField(max_length=50, blank=True, null=True)
current_handicap = models.IntegerField()
class Match(models.Model):
date = models.DateField(blank=False, null=False)
location = models.CharField(max_length=255, blank=True, null=True)
table_size = models.CharField(max_length=50, blank=True, null=True)
home_team = models.ForeignKey(Team, related_name='home_team', blank=True, null=True)
away_team = models.ForeignKey(Team, related_name='away_team', blank=True, null=True)
class Game(models.Model):
match = models.ForeignKey(Match, blank=False, null=False)
match_sequence = models.IntegerField(blank=True, null=True)
player1 = models.ForeignKey(Player,related_name='player1', blank=False, null=False)
player2 = models.ForeignKey(Player,related_name='player2', blank=False, null=False)
player1_handicap = models.IntegerField(null=True, blank=True)
player2_handicap = models.IntegerField(null=True, blank=True)
我已經成功地進行了查看,並ModelForms添加/編輯球隊,球員和比賽。 匹配列表顯示在一個表中,每行有1個匹配....現在我想要添加一個按鈕來添加一個新的遊戲。
我的計劃是由具有按鈕進入到一個URL看起來像這樣這樣做:
game/new/?match_id=1 (or something like that)
現在對於我的困惑.....當你添加一個新的部分遊戲,我想顯示3個選擇字段,並且只有3個選擇字段。 第一選擇字段應該顯示來自主隊球員還沒有在這場比賽中 第二選擇字段應顯示來自尚未在一場比賽一場比賽客場球隊球員打過一場比賽 第三選擇字段將只有兩種選擇(主場和客場)......並且會指示哪位球員首先出手。
然後,當用戶點擊提交時,它需要使用查詢字符串中的match_id,匹配的下一個序列號以及Player1 =根據第三個選擇字段的home或away選項創建一個Game()對象。
我完全不知道應該怎麼做....應該使用forms.Form還是ModelForm?
任何建議或骨架代碼來暗示我?
在此先感謝您的幫助,這樣一個新手問題!
保羅
我會採取'ModelForm'任何一天超過'Form' – karthikr