只有新项目的 Django 可重复字段

Django repeatable field with only new items

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

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

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

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

举例说明我要完成的工作:WP 中的 ACF 转发器字段:

在我的例子中,我只需要一个包含步骤描述的 description 字段

你有点倒退了。 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 以 "repeatable" 方式显示这些字段,类似于 ACF。