根据用户选择更改Django表单字段

时间:2016-06-05 06:50:11

标签: jquery python django

我有三个模型:ProductProduct ClassProduct Attributes。现在,当用户显示创建新产品的页面时,他/她需要从下拉列表中选择Product Class。根据此选择,Product Attributes必须动态刷新(使用AJAX)并允许用户输入特定信息。

例如:产品类型可以是Automobiles,在这种情况下,应要求用户输入Tyre SizeFuel Tank Capacity等,或者产品类型可以是{{1并且用户需要输入ElectronicsRAM

问题是如何在Django中管理它。我的观点有一个产品表单,但我无法在此表单中添加属性字段,因为我不知道用户将选择的Storage Capacity。基本上,我需要根据用户选择更改表单字段(添加属性字段)。我该怎么做?

目前,保存产品然后再次打开进行编辑后,我将使用以下代码添加相应的属性字段:

product class

但这很大程度上依赖于已经创建的产品实例。我希望用户在创建新产品时也能输入数据。我该怎么做?

1 个答案:

答案 0 :(得分:0)

当用户选择ProductClass时,您可以将pk发送(AJAX)到Django并基于此,让Django使用常规{{1}返回相应的输入表单字段HTML提交它。

然后将该HTML插入原始表单,以便向用户显示。

这样,当用户提交表单时,您可以像往常一样使用Django表单处理“两个表单”。首先创建django.forms,然后创建从属ProductClass

如果用户在填写表单时更改了他们的意见,您可以删除动态插入的表单字段,并向Django发送另一个AJAX请求以获取新选择的ProductAttributes的表单字段。