如何在仅渲染字段名称时消除 django 表单的前缀,但保持其他所有内容不变

发布于 2024-11-18 12:42:19 字数 379 浏览 5 评论 0原文

在我的 Django 应用程序的某些视图中,呈现同一表单的两个实例,一个是通过上下文处理器包含的,另一个是由视图包含的。两种表单之间的唯一区别是样式和位置,它们具有相同的字段并提交到相同的视图。

然后我注意到元素的 ID 是相同的,并且某些功能(例如聚焦相应字段的标签单击)行为错误,例如将同一字段聚焦在另一个表单上。然后我向第一个表单添加了一个表单前缀,当然标签又起作用了。

但前缀也应用于字段名称(除了 ID),因此,获取提交数据的视图不起作用,因为表单实例是在没有前缀的情况下初始化的。另外,查询字符串看起来更奇怪:(

我正在寻找一种解决方案,保留原始字段名称,不带前缀,并且仍然使用带前缀的 HTML ID,因此视图保持不变。或者使用任何其他方式呈现两个表单独立的 ID,但字段名称相同。

In some views of my Django app, two instances of the same form are rendered, one is included via a context processor, and the other is included by the view. The only difference between the two forms are the styling and position, they have the same fields and submit to the same view.

Then I notices that the IDs of the elements are the same, and some functionality, like the label click that focus the corresponding field, behaves wrong, like focusing the same field on the other form. Then I added a form prefix to the first form and of course the labels worked again.

But the prefix is also applied to the fields names (besides the IDs), and therefore, the view that get the submitted data didn't work, since the form instance was initialized without the prefix. Also, the query string looks even weirder :(

I'm looking for a solution that keeps the original fields names, not prefixed, and still use prefixed HTML IDs, so the view keeps working unchanged. Or any other way of rendering two forms with isolated ids but the same field names.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怕倦 2024-11-25 12:42:19

使用前缀对于拥有多个 Django 很有用单一

形式元素。

如果您想要多个

;元素,您可以使用 Formsets

using prefix is useful to have several Django forms in a single <form> element.

If you want to have more than one <form> element, you may use Formsets.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文