我建立一个足球预测应用程序,同时学习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