在Django模板中动态生成动态表单

时间:2015-08-28 15:16:24

标签: javascript ajax django django-forms

我有一个Django模板(html文件)。它包含一个下拉选择器,它有很多选项。在选择每个选项时,浏览器上会显示一个预定义的表单。每个这样的表单都有一个预定义的字段。

例如,在选择关于选项时,表格将为 -

Name - 
Age - 

选择教育选项时,表格将为 -

University - 
CGPA - 

现在实现此功能的最佳方法是什么?

格式1 - 在选择任何选项时,我对服务器进行Ajax调用并返回要显示的字段的json。

格式2 - 我在模板中对几个表单进行硬编码并使其可见性 - 根据所选的选项是真的。(我不相信)

格式3 - 我在这里寻找的任何新解决方案。

由于

2 个答案:

答案 0 :(得分:1)

实现这一目标的一种方法是我几天前实施的方式:

将ajax调用发送到您需要的格式的服务器,然后以HTML格式将其发送回模板。

form = Yourform()
form = form.as_p()
return HttpResponse(form)

这将以HTML格式返回您的表单。现在您需要做的就是用这个新表单替换容器。 希望这有帮助!

答案 1 :(得分:0)

取决于谁将在以后维护它!

如果要查询后端的字段,那么无论谁想要向表单添加新字段,都必须访问后端代码并将其插入到那里。一般来说,不是每个人都可以访问它!那个人需要知道Django。此外,使用ajax,您仍然在发出HTTP请求,尽管在localhost上,与硬编码表单相比可能会有轻微的延迟

相反,您可以使用django模板引擎,例如模板继承和填充,以减少代码冗余并将表单保留在前端本身!这样,如果前端人员必须添加新内容,他可以用HTML做到这一点!

如果您在表单中有数千个字段太多而无法键入或维护,那么您可以发出ajax请求。或者保持前端运作良好!

希望这有帮助!

(无论是谁打算回答这个问题,也请提及原因,以便进行贬低)