我建立一個足球預測應用程序,同時學習Django和有以下型號:預填充模型表單集具有多個模型實例
class Team(models.Model):
Name = models.CharField(max_length=30)
class Fixture(models.Model):
HomeTeam = models.ForeignKey(Team, related_name='HomeTeamRef')
AwayTeam = models.ForeignKey(Team, related_name='AwayTeamRef')
HomeTeamScore = models.IntegerField(null=True, blank=True)
AwayTeamScore = models.IntegerField(null=True, blank=True)
Date = models.DateField()
class Player(models.Model):
User = models.ForeignKey(User)
DefaultHomeScore = models.IntegerField()
DefaultAwayScore = models.IntegerField()
class Prediction(models.Model):
Fixture = models.ForeignKey(Fixture)
HomeTeamScore = models.IntegerField()
AwayTeamScore = models.IntegerField()
Date = models.DateTimeField()
Player = models.ForeignKey(Player)
我有很多固定的物體填充,並用模型表單集是基於預測模型呈現允許用戶輸入分數的視圖。
問題是他們必須選擇與預測相關的夾具。我想預先填充這個,所以他們得到一個燈具列表,只需輸入hometeamscore和awayteamscore。這涉及預測Prediction.Fixture字段和Prediction.Player字段,但我不確定如何去解決這個問題?
任何幫助,非常感謝。
編輯:問題似乎是如何將Fixture的多個實例傳遞到Prediction模型formset中,我已經看到了傳遞一個實例但希望一次完成所有操作的示例。 我也希望用戶能夠對每個燈具進行一次預測。
使用1.4,我發現僅僅提供initial_data列表是不夠的。我還必須在'modelformset_factory'調用中指定足夠多的「額外」行。 – DanH
+1對於'extra' ivar的說明。如果你不想在'modelformset_factory'中硬編碼'extra'的數目,我在做的就是在調用'MyModelFormset()'之前設置'MyModelFormset.extra =#extra'' – Patrick