使用Django表单从单个页面记录多个记录

3 投票
2 回答
1501 浏览
提问于 2025-04-17 12:04

这可能吗?如果可以的话,有人能给我指个方向吗?这是我的 model.py:

class Client(models.Model):
    user_name = models.CharField

class Task(models.Model):
    client = models.ForeignKey(
                               'Client',
                               )
    task_type = models.ForeginKey(
                                 'Task_Type',
                                  )
    date = models.DateTimeField()

class Task_Type(models.Model):
    name = models.CharField

class Task_Value(models.Model):
    value_num = models.DecimalField
    task = models.ForeignKey(
                             'Task',
                              )  

我想要的是一个表单,用户看到的内容是:

  • 任务类型 - 日期(适用于所有后面的记录)
  • 客户 ID 1 - 任务值 1
  • 客户 ID 2 - 任务值 2
  • 客户 ID 3 - 任务值 3
  • 客户 ID 4 - 任务值 4

每一行都有有效的客户 ID、任务类型和日期时,就会为每一行创建一个独特的任务记录。而且对于每一个有效的任务值,也会在任务值表中创建第二个记录,并且在同一行中与创建的任务类型事件建立外键链接。

这样做是可以在一个页面/表格中完成,还是说我需要先快速输入任务类型,然后再加载一个表格形式的表单,记录刚创建的事件,并单独记录这些值?(这是给用户输入的,不是给管理员输入的)


所以这就像是有一个表单集合,用户可以定义额外的数量,但在顶部共享一些公共字段,这些字段不会被复制多次(这样用户就可以为同一个日期和任务类型创建多个记录)。这两个表单集合中每个只会有一个重复的字段(任务记录的客户 ID 和任务值记录的任务值)。然后第二个表单集合会从第一个表单集合获取主键作为外键。

2 个回答

1

我觉得你问的是Django中的InlineModelAdmin对象。这些对象使用起来非常方便,而且有好几种方法可以设置它们。

撰写回答