|
|
1
3
我想你要找的解决办法是 django form wizard 基本上,您为不同的页面定义单独的表单,并根据前一个屏幕中的输入自定义下一个表单,最后,您将所有表单的数据收集在一起。 具体来看 process step 窗体向导上的高级选项。
如果您只需要根据同一表单中的其他下拉列表修改下拉列表值,那么应该查看实现的 dajaxproject |
|
|
2
1
我认为这取决于问题的规模。 您可以编写一些显示和隐藏表单字段的通用JavaScript(然后在表单本身中应用这些CSS类)。对于显示和隐藏字段的数量相对较少的情况,这将很好地工作。 如果你想更进一步,你需要考虑在Django开发动态表单。我建议你不要像Ghislain建议的那样修改类中的[字段]。这里有一篇关于 dynamic forms 它向你展示了一些方法。 我可以想象,一个好的解决方案可能是将上面文章中的动态形式与 django FormWizard . 表单向导将引导您浏览各种不同的表单,然后允许您在最后保存总体数据。 但是它有一些问题,因为你不可能不丢失你所执行的步骤的数据就轻易地后退一步。同时显示所有表单需要对表单向导进行一点自定义。有些API没有文档记录或被认为是公共的(所以要小心它在将来的django版本中会发生变化),但是如果你看一下 the source 您可以很容易地扩展和重写表单向导的某些部分,以完成所需的操作。 最后一个简单的表单向导方法是使用5个静态表单,然后在向导中自定义表单选择,更改下一个表单是什么,只显示相关表单。这同样可以很好地工作,但这取决于表单在以前的选择上有多大的变化。 希望有帮助,如果有什么问题可以问! |
|
|
3
-1
听起来你想要一个半封闭式的解决方案。结帐 Taconite plugin 对于jQuery。我用这个来填充表单上的下拉列表等。工作得很好。 至于“一般性”…您的容器类上可能有返回子类列表的标准方法,然后有一个模板fragmen t,它知道如何以某种“标准”方式格式化子类。 |
|
|
4
-1
好吧,我发现了一个根本不使用Ajax的解决方案,而且对我来说还不错: 根据需要创建尽可能多的表单,并使它们成为彼此的子类。将整数隐藏字段放入第一个字段:
好的,这是表单的视图:
我看到的唯一问题是,如果在模板中使用表单,它将调用form.errors,从而自动验证新表单(例如,Form2)和前一个表单(Form1)的数据。所以我要做的是迭代表单中的项目,只使用item.id,item.label和item。因为我已经在视图中提取了前一个表单的错误并将其传递给模板,所以我添加了一个DIV来在页面顶部显示它们。 |
|
|
Patrick Bond · 如何将模型中的函数结果添加到列表中? 1 年前 |
|
|
bur · 每次从模板调用方法都会查询数据库吗? 1 年前 |
|
|
Stefan · 在子目录中设置Django 1 年前 |
|
|
vale383 · 如何在Django端点中查找user_id 1 年前 |
|
|
Kovy Jacob · Django在动态URL段中添加斜线 1 年前 |
|
|
user987 · 如何在Django中访问提交的表单请求数据 1 年前 |
|
|
user24242514 · 将嵌套查询字符串请求转换为字典 1 年前 |