在我的Django应用程序的一些视图中,呈现了两个相同形式的实例,一个通过上下文处理器包含,另一个包含在视图中。两种形式之间的唯一区别是样式和位置,它们具有相同的字段并提交到相同的视图。
然后我注意到元素的ID是相同的,并且某些功能(如聚焦相应字段的标签点击)表现不对,就像在另一个表单上聚焦相同的字段一样。然后我在第一个表单中添加了一个表单前缀,当然标签再次起作用。
但前缀也应用于字段名称(除了ID),因此,获取提交数据的视图不起作用,因为表单实例初始化时没有前缀。此外,查询字符串看起来更奇怪:(
我正在寻找一种解决方案,它保留原始字段名称,而不是前缀,并且仍然使用带前缀的HTML ID,因此视图保持不变。或者使用相同的字段名称渲染两个表单的任何其他方式。
答案 0 :(得分:1)
using prefix对于在单个< form>中使用多个Django表单非常有用。元件。
如果您想拥有多个< form>元素,您可以使用Formsets。