仅包含新项目的Django可重复字段

时间:2016-03-14 19:38:27

标签: python django django-models django-forms django-1.8

我想创建一个包含多个步骤的指令。简化模型如下所示:

class Step(models.Model):
    description = models.CharField(max_length=255)

class Instruction(models.Model):
    steps = models.ForeignKey(Step)

问题是我想创建一个包含多个步骤的新指令,但是当我在管理员中创建一个时,我应该有一个可重复的表单字段。对于每个步骤,我可以添加一个字段并创建一个新步骤。 我不需要能够选择已经存在的步骤。我不确定是否有一些OOTB包已经做到了...有任何想法如何解决这个问题?

举一个我想要完成的例子:WP中的ACF转发器字段: enter image description here

在我的情况下,我只需要一个description字段,其中包含步骤的描述

1 个答案:

答案 0 :(得分:1)

你有点倒退。 ForeignKey关系应该是另一种方式(因为一条指令可以有很多步骤,但每一步只有一条相关指令......一个Many-to-One关系)。

class Step(models.Model):
    description = models.CharField(max_length=255)
    instruction = models.ForeignKey(Instruction, related_name='steps')

class Instruction(models.Model):
    # some fields

现在,在您的管理员中,您可以使用inlines以“可重复”的方式显示这些字段,类似于ACF。