问题标签 [inline-formset]

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 投票
2 回答
3650 浏览

django - Django Inline Formset Custom Validation 仅一次验证单个 Formset

我正在使用 Django,并且有一个带有两个附加内联表单集的表单。我想验证每个表单集是否至少包含一个填充表单。我已经编写了这样的代码,但它一次只适用于每个表单集。如果我提交的表单没有填充任何表单集表单,则只有第一个表单显示验证错误。如果我然后填充第一个表单集表单,并将第二个表单留空,则第二个表单会出错。

如果两者都无效,我希望两种形式都出现错误。

表格只是标准ModelForm实例。这是我的看法:

这是我的模板表格,以防它有用:

0 投票
2 回答
6597 浏览

python - Django:ManagementForm 数据丢失...... Formset 将无法验证。为什么?

由于某种原因,我的表单集在我提交后将无法验证。关于这种情况可能发生的任何想法?

#models.py

#view.py


step5-test.html

跟进(解决方案):

Brant 提供了一些关于错误发生原因的见解。就我而言,他的洞察力帮助我构建了一个更适合我的情况的 hack。此 hack 似乎适用于可能已在模板中以某种方式修改的表单集。就我而言,我的表单集变得复杂,需要一些 ajax 来使其更加用户友好。

“retrieve_provider_instance(email)”是一种基于数据库中设置的各种标准(大约 200 行代码呕吐)检索提供者对象的动态方式。

在进行了一些广泛的调试之后,以下 hack 对我有用。我通过在模板的“for”循环中 添加以下隐藏字段来解决它

我接受了马克的回答,因为它更适用于我提出的具体问题。希望这将有助于将来尝试实现此示例的其他用户。事实上,在提交时分配“前缀”是正确的方法,也是最有意义的。

感谢您的所有回复。

最好的问候,马特


跟进:我想我可能已经找到了我的部分问题。但是,还没有解决。

以下是一些可能有助于解决问题的附加信息。不正确的 POST 数据会搞砸吗?如果是这样,我该如何解决这个问题?

这是我提交表单集后发生的情况(在这种情况下只有一个表单):

回溯如下:

_management_form 68 中的文件“/home/mhjohnson/webapps/resourcedb/lib/python2.6/django/forms/formsets.py”。引发 ValidationError('ManagementForm 数据丢失或已被篡改')

这是我的 POST 数据:

有任何想法吗?

0 投票
2 回答
1250 浏览

django - Django Inline Formset 问题(列表超出范围)

这应该很简单,实际上我昨天已经开始工作了。我不知道发生了什么变化,但它现在抛出了一个错误。

感谢您对此的任何帮助

0 投票
1 回答
132 浏览

css - drupal6错误ajax内联

如何设置自定义内联错误消息以在节点中形成(包括 cck 和所有东西)?

我看到了几个模块,但没有一个给出 100% 的解决方案,因为没有 CCK 支持、上传支持、错误消息等。

0 投票
1 回答
619 浏览

django - Django admin:内联具有 2 个外键的 Many2Many 模型

在绞尽脑汁好几天之后,我只希望有人能指出我正确的方法。我有 4 个模型:页面、元素、样式和帖子。

这是我的简单 models.py/admin.py 摘录:http ://pastebin.com/uSHrG0p2

2句话:

一个元素引用了 1 个样式和 1 个帖子(2 个 FK)。

一个页面可以引用很多元素,元素可以被很多页面引用(M2M)。

在页面实例的管理站点上,我将 M2M 关系包含为“内联”。这样我就有多行来选择元素实例。一行看起来像:[My Post A with My Style X][V]

我想要的是用 2 个下拉列表替换那个下拉列表。一个包含所有 Post 实例,一个包含所有 Style 实例(就地创建 Element 实例)。这样一行看起来类似于 Element 管理站点:[My Post A][V] [My Style X][V]

听起来很简单,但在阅读和试验了 2 天的 ModelForms、ModelAdmins、Formsets 之后,我完全迷失了。我可以在没有 Django 管理功能中的自定义视图/表单的情况下做到这一点吗?

我的一种方法是像这样从 PageAdminForm 访问 Post/Style 实例,尝试从中手动创建表单小部件......但未能这样做:

有什么建议或提示我需要走哪条路吗?感谢您的时间!

0 投票
1 回答
334 浏览

python - 自定义外键的inline_formset字段显示

我有一个名为 Access 的模型,它链接到其他两个模型。

我创建了这个表格。

我有这个观点。

问题出在网页中,user_id 显示为一个选择字段,为我提供了所有用户的列表(即“jane15”、“tom54”)。我希望它是一个必须有人输入用户名的文本字段。当我尝试如下自定义它时,它显示“用户 ID”而不是“用户名”(即“1”、“2”)。

如何让表单集显示和接受用户名(即“jane15”)作为文本字段而不是选择字段?

0 投票
1 回答
867 浏览

django - 用户同时编辑时,Django 内联表单集抛出 IndexError

更新:我现在认为这是 Django 中的一个现有错误,报告为Ticket 14642

这让我发疯了,我认为这是由于我的表单代码,但我现在意识到我可以使用我的模型和管理员重新创建它。我想知道这里的预期行为是什么:

模型.py:

管理员.py:

现在执行以下操作:

  • 在 admin 中创建一个包含多个 ThingyItem 的新 Thingy 并保存。
  • 打开编辑页面。
  • 在第二个浏览器窗口中打开同一事物的编辑页面。
  • 检查最后一个ThingyItem上的“删除”按钮并将其保存在第二个窗口中。
  • 现在回到第一个表格并保存

当我这样做时,我得到:

我不会在管理员中真正关心这一点,除非它在我们的生产服务器上使用我自己的表单以代码形式发生。内联表单集代码似乎很脆弱。当它确实应该检查这些假设是否仍然有效时,它会信任与管理表单一起发送的数据。

现在,我认为这值得在 Django Trac 中报告——我计划现在就这样做——但是我想知道这里是否有人曾经发生过这种情况,如果是这样,你是如何解决的?有没有一种简单的方法来测试表单假设的这些先决条件是否仍然有效?我是否应该在我的视图或表单代码中这样做?

0 投票
2 回答
2894 浏览

django - 清空cleaned_data

我不明白为什么会这样。我已经将完全相同的代码应用于其他内联表单集,但是这个特定的内联表单集没有保存我的任何更改。我发现在我的表单“AtLeastOneFull”中,尽管我有数据,但 form.cleaned_data 始终为空。

该网页正确显示模型“访问”的内容,但是一旦我单击提交,它就会注册为无效,因为无论我对网页上的内联表单数据所做的更改,我都没有数据。

形式:

楷模:

看法:

0 投票
2 回答
23550 浏览

django - 如何限制 django admin 内联表单集

你如何限制 django admin 中的内联表单集?

问题:

我有一个与 B 有 1 到 n 关系的表 A。表 A 应该至少有一个表 B 项目和最多 5 个表 B 项目。

0 投票
1 回答
241 浏览

django - 如何使外键显示为自己的表单而不是下拉菜单?

我正在尝试为这样的电影列表创建一个表单集:

现在“电影”显示为下拉菜单。但是,我希望“电影”显示为“Movie.name”的空白文本框,以及“Movie.genre”的下拉菜单。用户可以在文本框中输入电影名称并选择流派,如果该电影已经存在,则 MovieList.movi​​e 引用现有的表行,否则创建一个新的 MovieList 行并且 MovieList.movi​​e 引用新的表行。

我怎样才能做到这一点?