单页上的多个Django表单

时间:2018-06-01 19:59:47

标签: python django

我正在尝试创建一个表单来输入一轮高尔夫的分数。标准的高尔夫球是18洞,所以一旦提交,该表格应创建18个“得分”实例。我将如何创建一个包含“播放器”单个下拉列表的表单,以及每个孔中包含笔划的18个文本字段?以下是使用的模型:

class Score(models.Model):
    hole = models.ForeignKey(Hole, on_delete=models.CASCADE)
    player = models.ForeignKey(Player, on_delete=models.CASCADE)
    strokes = models.IntegerField(default=0)

class Player(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)

class Hole(models.Model):
    number = models.IntegerField()

1 个答案:

答案 0 :(得分:2)

看看Django Inline Formsets。这允许您为每个视图包含多个表单,并且内联表单集允许您使用外键相关的对象。

当您知道需要在模板中包含的表单的确切数量时,相对容易一些。但是,如果您想在模板中动态包含表单,则需要考虑添加一些javascript来提供此功能。