【问题标题】:Django repeatable field with only new items只有新项目的 Django 可重复字段
【发布时间】:2016-06-30 00:34:14
【问题描述】:

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

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

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

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

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

在我的情况下,我只需要一个带有步骤描述的 description 字段

【问题讨论】:

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


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 2012-02-17
      • 2014-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 1970-01-01
      相关资源
      最近更新 更多