问题标签 [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 投票
1 回答
792 浏览

django - Django Formset 迭代出错

我正在尝试使用普通迭代(就像 Django 文档中显示的那样)为表单集中的每个表单获取 clean_data:

之后,我正在验证并尝试遍历每个表单并打印它的值,如下所示:

但我得到的结果是这样的:

我期望获得一对单独的键和值,但相反,对于每次迭代,我都会获得整个 POST 数据。

我期待这样的事情:

迭代 0:

迭代 1:

我想念哪里?

谢谢

0 投票
1 回答
1518 浏览

python - Django 表单集在多对多关系上变慢

我在 3 个模型之间有多对多的关系,即 - 用户、项目和角色。一个用户可以在多个项目中扮演多个角色,甚至在同一个项目中。这种关系在 Django 中使用以下类建模:

我已经为每种类型的对象创建了所有的 CRUD 视图。我需要提供一个表单集,用于在User编辑视图中添加/编辑用户项目角色。在Project编辑视图中,我需要提供一个表单集来添加/编辑用户角色。例如,在项目编辑视图中,我基本上所做的是:

然后在模板中:

这将为项目中的每个用户角色关系显示用户的选择字段和角色的多选字段。问题是,当用户角色关系的数量增加时,页面加载时间会疯狂增长。我知道发生这种情况是因为它每次必须获取用户列表和角色列表时都会运行一个 sql 查询。有什么办法可以让 Django 不为同一件事运行这么多查询?

0 投票
1 回答
5082 浏览

django - 在 Django 表单集中过滤对象

我正在使用 inlineformset_factory 生成一个表单集,如下所示:

我有两个问题

  1. 如何限制 Model2 对象,以便不存在所有适用的对象,而只存在过滤的子集?
  2. 有没有人有任何使用基于类的视图和表单集的示例代码?

更新了功能代码回答问题 #1

0 投票
1 回答
4925 浏览

python - Django - 将参数传递给内联表单集

我正在使用inlineformset_factory中介出勤模型为客户和会话之间的多对多关系创建字段。

我的视图文件中有以下内容:

而且,由于我需要覆盖其中一个表单字段,我将以下内容添加到 formset 基类中:

现在,表单可以正常工作,但我需要将一个值传递到表单集中,以便我可以根据当前用户过滤显示的客户端,而不仅仅是使用 id 2。

任何人都可以帮忙吗?

任何建议表示赞赏。

谢谢。

编辑

对于任何阅读的人来说,这对我有用:

0 投票
2 回答
117 浏览

python - 同一网页上的表单和表单集之间的关系

我正在尝试将在表单集中创建的所有对象与在与表单集相同的网页上创建的对象相关联。因此,代码示例如下:

我遇到的问题是,当尝试将表单集对象与表单一相关联时,它告诉我表单对象实际上并不存在。但是,它在数据库中创建对象,但没有任何 formset 对象。我收到错误“无法分配“u''”:“Species.BName”必须是“BModel”实例。” 如果这有帮助。此外,该关系是一个外键。有没有办法解决这个问题?谢谢你的时间。

0 投票
1 回答
177 浏览

python - 如何访问表单集的成员表单?

我有一个使用自定义表单的 inline_formset。该表单具有我想调用的各种功能。但是,给定一个表单集的实例,我怎样才能访问那个(那些?)表单?

这是一些伪代码:

0 投票
1 回答
858 浏览

django - django表单集问题

我有 2 个模型

我收到以下错误

'BForm' 对象没有属性 ' name '

实际上我只希望在我的表单集中显示 A 类的选择性值

0 投票
2 回答
4218 浏览

django - 如何在 django 表单集中访问表单的数据

我在从表单集中访问表单数据时遇到问题。我附上了代码:

错误是我无法获取表单 ['action_name']。formset.is_valid() 返回 True

错误

异常类型:KeyError

异常值:'action_name'

发布数据

form-0-action_name u'a'

form-2-description u'sadsa'

form-0-description u'a'

表格-MAX_NUM_FORMS u''

form-1-description u'asd'

表格-TOTAL_FORMS u'3'

form-1-action_name u'as'

form-INITIAL_FORMS u'0'

csrfmiddlewaretoken u'c4fa9ddb4ec69ac639d7801eb14979f2'

form-2-action_name u'asda'

0 投票
1 回答
263 浏览

django - 使用 modelformset 保存 manytomanyfield

我有一个与另一个模型具有多对多关系的模型。它们都有与之关联的表单,后者有一个表单集。

在我的视图/模板中,标准的 ManyToManyField 小部件已替换为表单集。因此,我必须手动将该表单集中指定的 Bar 实例与 Foo 的 ManyToManyField 相关联。我在 Foo 的 clean 方法中这样做:

几乎可以工作。问题在于它将 Foo.bars 设置为表单集中已更改的表单集。因此,如果我向我的 foo 添加一个 bar,然后重新加载表单并添加第二个 bar,则 foo 最终只有第二个 bar。

根据 Django 文档:

save() 方法返回已保存到数据库的实例。如果给定实例的数据在绑定数据中没有变化,则该实例不会保存到数据库中,也不会包含在返回值中...

所以我明白为什么我的代码失败了。我只是不知道该怎么办。我可以传递什么给cleaned_data["bars"] 以添加新修改的表单但不删除现有表单?

非常感谢您的帮助。

0 投票
2 回答
1966 浏览

python - django模板:在表单集中获取多对多值

楷模:

形式:

书单.html:

因此,这将为每本书的作者输出一个多选框。如何获取模板中作者的名字?

谢谢,阿迪

编辑:添加视图

意见:

在 thebooks 页面加载 booklist 页面的 js 代码: