首页 > 解决方案 > 单个页面上的多个 Django 表单

问题描述

我正在尝试创建一个表格来输入一轮高尔夫的分数。一轮标准的高尔夫是 18 洞,因此一旦提交,表单应创建 18 个“Score”实例。我将如何创建一个表单,该表单包含一个“玩家”下拉列表和 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()

标签: pythondjango

解决方案


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

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


推荐阅读