问题标签 [formsets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
527 浏览

python - 将表单集与 ContentType 一起使用

我在将 UpdateView 用于由表单和表单集组成的视图时遇到问题。

我有以下模型:项目和图片。

图片定义为:

我有几个包含图片的模型。例如,在 Item 模型中:

我有以下 ItemCreateForm:

图片形式:

和观点:

这是我的 urls.py:

模板:

我是 Django 的新手。

用户可以通过用于显示项目和多张图片的单个模板中的图片表单动态(通过 jQuery)添加/删除图片。

1 我必须将 id 作为图片的隐藏字段包含在内,否则将插入图片而不是更新。QN:有没有更好的方法来做到这一点?

2 如何更新图片模型?目前request.POST没有模型中的所有字段,因此模型抱怨 NULL 字段?我完全迷失了如何在 UpdateView 中处理 formset 并且不是主要形式,就像在 url 中带有 pk 的 UpdateView 的简单示例。

0 投票
3 回答
3130 浏览

python - 保存一组自定义表单 django

我正在尝试在 django 中保存一个表单集。为此,我有我的模型和自定义表格。然后我以这种方式创建我的表单集:

但是当我做 formset.save() 我得到AttributeError: 'QuoteFormFormSet' object has no attribute 'save'

我的模型:

我的表格:

0 投票
1 回答
1012 浏览

django - 表单的cleaned_data 为空,但formset 的clean_data 不是?

我试图在表单集的每种形式中使用 CharField 中的字符串值,但是由于某种原因,每个表单的 clean_data 总是显示为空,而表单集的清理数据不是。这是我的views.py中的代码:

我的表格如下所示:

正如我之前所说,tags_formset.cleaned 数据包含在页面上输入的正确信息,但是表单的清理数据是空的。这段代码给了我一个 KeyValue 错误,说“标签”不在已清理的数据中,因为它没有任何内容(在 saveTags 函数中引发错误)。

0 投票
1 回答
36 浏览

django - Django Crispy Formsets 仅使用最后一次迭代——覆盖最后的结果?

这会输出如下内容:

no user found yet [x] can post? [x] is admin? [ ] remove?

no user found yet [ ] can post? [ ] is admin? [ ] remove?

代替:

Admin [x] can post? [x] is admin? [ ] remove?

Test user [ ] can post? [ ] is admin? [ ] remove?

这里有一些我不明白的地方。它似乎只保存了创建的 Cripsy 布局的最后一个实例(一个空模型),因此它只打印“尚未找到用户”。

我很困惑,我补充说print self.username并且值都设置正确。

我应该如何向表单集添加动态标签?

0 投票
1 回答
757 浏览

django - 用 div 将每个表单包装在 formset 中,包括使用 django 清晰表单的未提及字段

我正在使用以下代码将表单的所有表单字段包装在一个带有 django 清晰表单的 div 中的表单集中:

使用 'self' 实例化 FormHelper 会自动生成布局,而无需指定所有字段。我需要这个,因为我的字段是动态生成的。问题是 DELETE 和 ORDER 字段没有添加到布局中。所以我将render_un提到的字段设置为True。使用此设置,这两个字段至少会显示在表单中,但不会与 div 中的其余字段一起包装。

我知道我可以手动迭代表单集中的表单并用 div 包装它们,这是我到目前为止一直在做的事情,但这需要手动处理表单集的非表单错误,这通常是自动完成的由脆。

编辑:按要求更新代码。这整个类实际上包装在填充fields_list 的工厂方法中,这样我就可以只动态地包含某些字段。ORDER 和 DELETE 是故意省略的。它们会被自动检测到(包括它们会导致错误)并以表单形式显示,它们根本不包含在 div 中。

0 投票
1 回答
16277 浏览

html - 使用外键链接保存模型表单时,Django 'ManagementForm 数据丢失或已被篡改'

我对 Django 比较陌生,所以这可能是一个简单的问题。我有 2 个 modelForms,其中有一个 ForeignKey。我的主要目标是保存带有疾病 (FK) 链接的指标,这样对于特定疾病,您可以拥有多个指标。

使用下面的代码,当我点击提交时出现错误,提示“ManagementForm 数据丢失或已被篡改”。此外,views.py 中的代码似乎没有在第三个“if”语句中进行验证,其中有一个返回 HttpResponseRedirect。但是,当我检查我的数据库时,表单中的值已被写入。关于为什么提出错误的任何想法?以及如何解决?

我的代码如下:

模型.py

表格.py

视图.py

模板.html

0 投票
1 回答
292 浏览

html - 使用外键渲染 2 个表单集时,Django “ManagementForm 数据丢失”

我正在尝试在 1 个视图中呈现 2 个表单集并得到一个

错误。网页呈现正常,当我点击提交时数据确实将值传递给数据库,但我认为我传递管理表单数据不正确。

我还想补充一点,我使用了“ https://docs.djangoproject.com/en/dev/topics/forms/formsets/ ”,但它没有提供足够的文档来传递管理表单数据。此外,我的选项和结果表单集具有相同的外键。如果您在传递管理表单数据时发现任何问题,或者代码是否有任何其他问题,请告诉我。

下面是我的views.py和html:

视图.py

html:

0 投票
1 回答
659 浏览

database - Django formsets inlineformset 保存到数据库没有外键链接

我患有一种与多种指标相关的疾病。我的问题是,每当我保存指标并从下拉列表中选择一种疾病时,都会将一种新疾病写入链接到指标的数据库中。

我想要一个从我的疾病表中采样的下拉菜单。用户选择一种疾病并输入指标。指标保存在指标表中,并带有指向疾病表中疾病的链接(而不是在疾病表中写入新疾病)。

我将此作为参考参考:http ://charlesleifer.com/blog/djangos-inlineformsetfactory-and-you/

视图.py

表格.py

HTML:

更新: 我使用 Mariodev 的建议让它工作,但前提是我输入 PK=1 或其他一些硬编码数字。如何通过用户选择的PK?选择来自 PK = id 的疾病表。这是我的views.py的片段:

当我点击提交时出现此错误:drui() 恰好需要 2 个参数(给定 1 个)。有什么建议么?

0 投票
1 回答
6971 浏览

jquery - 在表单集中动态创建一个 django 表单,就像使用 jquery 在 django admin 中的内联表单一样

我有两个模型PublisherBook如下所示

模型.py

表格.py

视图.py

在此视图中,我将发送发布者 ID,因为Book模型没有发布者模型 的外键

模板.html

因此,在下面的模板中,将表单呈现为form.as_p正常工作,并且publisher id成功创建了多个记录

但是当我从表单中显示 html 字段并呈现如下

表单显示成功,当我单击链接时,Add another item正在使用上面的 jquery 生成一个新表单,当我尝试通过输入所有详细信息并单击提交来提交时,jquery 添加的下一个表单正在显示验证错误像name, age is required?(这仅在这种情况下发生,即单独显示字段而不是 form.as_p(),如果我们呈现为 form.as_p(),它的工作正常并且记录正在创建到数据库中)

所以我真的无法弄清楚为什么当我渲染表单时它成功了form.as_p(),为什么当我渲染时不成功individual fields with their errors

我是否遗漏了上述 javascript 代码中的任何内容/需要以及生成其他表单的任何内容?

因为当我们单独渲染字段时,通过单击添加另一个表单按钮生成的表单显示验证错误?

我真的浪费了很多时间来弄清楚上面的javascript,因为我通过谷歌搜索得到了一些地方,

所以最后当我们将formset表单渲染为时,上述功能是有效的form.as_p(),但是当我们单独渲染表单字段时,为什么上述功能不起作用?

任何人都可以让我知道如何解决上述问题(也可能是上面的代码将有助于许多用户动态创建表单,就像我们在 django admin 中有内联表单一样)

编辑

K谢谢schillingt,

所以根据你下面的回答,我修改了javascript和html,如下所示

并且表单在之后呈现错误form validation

但我面临以下不同的问题

  1. 当我们点击Add another item按钮时,一个新的表单已经成功创建。
  2. 当我们使用 提交表单时empty datavalidation错误消息会正确显示在相应的下方fields

问题一

  1. 现在,当我们尝试这样做时add another form,包括错误消息在内的所有以前的表单都将再次重新显示

就像我们有two表单,当我们在submit没有数据的情况下单击时,会为两个表单生成验证错误消息,现在当我们单击时Add another item,完全four forms已创建,我的意思是重复先前创建的两个表单,包括验证消息

问题二

  1. 所以现在当我们尝试删除表单时,我的意思是当我们点击delete表单按钮时,这种情况下的所有表单(如4 forms)都被删除了?

那么你怎么能让我知道如何解决这个问题?

0 投票
1 回答
303 浏览

django - 嵌套模型/内联表单集

我正在处理一个需要有几个级别的可编辑数据的页面。本质上,一个实体可以有零到多个组,每个组可以有零到多个用户。型号如下:

所以在这种情况下,一个排可以有多个小队,而这些小队又可以有多个小队成员,其中小队成员是一个士兵的交叉引用。

渲染页面时,我们知道我们正在查看哪个排,因此只需检索小队和小队成员的列表就很容易了。问题是我们需要能够在页面上添加/编辑/删除小队以及为每个小队添加/删除成员。几天来,我一直在尝试处理这些数据,但没有真正的突破。我一直在思考它需要是某种嵌套模型表单集或者可能是内联表单集,但我无法找到关于该主题的太多材料。

关于如何处理这个问题的任何建议?

谢谢,

亚历克斯