django - 动态添加 django 表单字段并保留用户输入
Posted
技术标签:
【中文标题】django - 动态添加 django 表单字段并保留用户输入【英文标题】:django - Adding django form fields dynamically and preserving user input 【发布时间】:2016-07-19 13:46:34 【问题描述】:情况就像我有一个职位表,其中的字段是这样的
-
职位名称
职位描述
工作资格
工作要求
Job Title 和 Job Description 是同一个表中的列,称为 Job,Job Qualifications 和 JobRequirements 是两个单独的表,名称分别为 JobQualifications 和 JobRequirements 分别指向(使用 ForeignKey )Job 表。
第 3 和第 4 字段是动态的,至少允许输入一项,但用户可以在表单在浏览器中呈现后添加更多资格和要求。
我处理这个问题的方式。 我们可以使用 javascript 添加字段,但是当用户提交表单时,如果表单出现问题,我们必须重新渲染表单,用户输入仍然存在。
我在#django (IRC) 上与其他人讨论过这个问题,我发现这实际上很有帮助。我们可以像 django 教程 part 7 的 2.9.2 添加相关对象 部分那样使用 inline-formsets,但是手动实现它会相当复杂,涉及到一些 javascript。
我不知道该怎么做,感谢任何帮助。
已经谢谢了
【问题讨论】:
【参考方案1】:您可以在if条件下在表单的init方法中创建字段,例如-
if request.POST:
if req_field_exists:
if new_field in request.POST:
return
else:
new_field = forms.Charfield()
这将在用户提交表单时起作用,如果提供了前一个字段,则会添加另一个字段。这不会异步工作或通过 AJAX 工作。
【讨论】:
以上是关于django - 动态添加 django 表单字段并保留用户输入的主要内容,如果未能解决你的问题,请参考以下文章