【问题标题】:django - Adding django form fields dynamically and preserving user inputdjango - 动态添加 django 表单字段并保留用户输入
【发布时间】:2016-07-19 13:46:34
【问题描述】:

情况就像我有一个职位表,其中的字段是这样的

  1. 职位名称
  2. 职位描述
  3. 工作资格
  4. 工作要求

Job TitleJob Description 是同一个表中的列,称为 JobJob Qualifications 和 JobRequirements 是两个单独的表,名称分别为 JobQualificationsJobRequirements 分别指向(使用 ForeignKey )Job 表。

第 3 和第 4 字段是动态的,至少允许输入一项,但用户可以在表单在浏览器中呈现后添加更多资格和要求。

我处理这个问题的方式。 我们可以使用 javascript 添加字段,但是当用户提交表单时,如果表单出现问题,我们必须重新渲染表单,用户输入仍然存在。

我在#django (IRC) 上与其他人讨论过这个问题,我发现这实际上很有帮助。我们可以像 django 教程 part 72.9.2 添加相关对象 部分那样使用 inline-formsets,但是手动实现它会相当复杂,涉及到一些 javascript。

我不知道该怎么做,感谢任何帮助。

已经谢谢了

【问题讨论】:

    标签: javascript jquery python django forms


    【解决方案1】:

    您可以在if条件下在表单的init方法中创建字段,例如-

    if request.POST:
        if req_field_exists:
             if new_field in request.POST:
                return
             else:
                new_field = forms.Charfield()
    

    这将在用户提交表单时起作用,如果提供了前一个字段,则会添加另一个字段。这不会异步工作或通过 AJAX 工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-14
      • 2017-08-31
      • 1970-01-01
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多