我有三个模型:Product
,Product Class
和Product Attributes
。现在,当用户显示创建新产品的页面时,他/她需要从下拉列表中选择Product Class
。根据此选择,Product Attributes
必须动态刷新(使用AJAX)并允许用户输入特定信息。
例如:产品类型可以是Automobiles
,在这种情况下,应要求用户输入Tyre Size
,Fuel Tank Capacity
等,或者产品类型可以是{{1并且用户需要输入Electronics
,RAM
等
问题是如何在Django中管理它。我的观点有一个产品表单,但我无法在此表单中添加属性字段,因为我不知道用户将选择的Storage Capacity
。基本上,我需要根据用户选择更改表单字段(添加属性字段)。我该怎么做?
目前,保存产品然后再次打开进行编辑后,我将使用以下代码添加相应的属性字段:
product class
但这很大程度上依赖于已经创建的产品实例。我希望用户在创建新产品时也能输入数据。我该怎么做?
答案 0 :(得分:0)
当用户选择ProductClass
时,您可以将pk
发送(AJAX)到Django并基于此,让Django使用常规{{1}返回相应的输入表单字段HTML提交它。
然后将该HTML插入原始表单,以便向用户显示。
这样,当用户提交表单时,您可以像往常一样使用Django表单处理“两个表单”。首先创建django.forms
,然后创建从属ProductClass
。
如果用户在填写表单时更改了他们的意见,您可以删除动态插入的表单字段,并向Django发送另一个AJAX请求以获取新选择的ProductAttributes
的表单字段。