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

django - django 1.3+ 中的内联表单集的表单集

我有一个产品模型和一个价格模型。价格模型对产品模型有 FK。可能有多个价格(取决于售出的单位数量)。在 django 1.2.5 http://yergler.net/blog/2009/09/27/nested-formsets-with-django/之前可以解决这个问题。但详细http://www.mail-archive.com/django-users@googlegroups.com/msg124195.html这不再有效。

最终想要的结果:下面的表格来编辑和添加数据。

产品一-价格一、数量-价格二、数量 产品二-价格一、数量 产品三-价格一、数量-价格二、数量-价格三、数量

为了清楚起见,转载:

在 Nathan 的原始代码中,最底层的表单集是这样创建的:

其中 instance 是 Building 的实例,租户的“父级”或容器,self 是

这是这样实例化的:

为了解决这个问题,我停止传入 self.data,这导致最底层的表单始终具有 is_bound = False,即使在渲染并发布回视图之后也是如此。因此验证总是失败并且表单所代表的对象不能被更新。我已经使用 Nathan 博客文章中的代码重现了该行为,因此这种嵌套表单集的方法似乎不再有效,或者代码需要调整才能在 1.3 中工作。

在 Django 1.2.5 之前,Nathan 的代码运行良好。但是在 1.3 中,如果将 self.data 传递给 TenantFormset,则结果为空并引发 ValidationError,因为尚未提供 ManagementForm 信息。
这是#11418,AFAICT 的预期结果。

有没有人对如何使它起作用有任何其他想法?

干杯,

(抱歉没有详细的代码示例 - Nathan 的帖子比我的代码更清晰,所以我建议你看一下。)

一般说明:关于如何做到这一点似乎有很多困惑,这里的回复显示http://www.reddit.com/r/django/comments/hwyto/is_there_a_way_to_do_nested_formsets_in_django/

0 投票
1 回答
3918 浏览

django - Django 内联表单集设置

我已经将我的课程设置如下:

我想要做的是让用户选择一个检查组,然后从该组中,他们将看到该组下的所有问题,其项目标题用于模板中的分组。然后他们将回答问题并发布结果。

我的问题是完成这项工作。我已经开始编写一些代码,但它似乎并不正确。

有人可以确认这个想法是否可行,或者我需要做什么才能拥有我想要的功能?目前我收到此错误:

更新 1我已经通过阅读来自 readthedocs 的链接解决了上述错误

但是,现在,由于模板仅显示提交按钮,因此表单集似乎是空的。

What can be the issue now?

0 投票
1 回答
321 浏览

javascript - 使用带有内联表单集的“添加另一个”按钮?

我已经弄清楚如何使用管理员样式的“添加另一个”按钮(它添加了外键的新记录并将其弹出到当前表单的选择框中)。这是那个问题/答案。我想知道这是否可以使用内联表单集,用户可以在其中动态添加其他表单集。

例如,我有一个估算应用程序,用户可以在其中item从下拉菜单中选择 s。他们可以添加一个新的内联表单集实例并选择另一个item. 如果他们找不到item,我希望他们能够item通过单击+我为所有其他表单使用的相同小符号(因此所有相同的 JS 代码)来添加新记录。

有什么想法吗?

0 投票
6 回答
5609 浏览

django - 如何根据当前对象字段值显示不同的内联

给定一个名为MainModel和 a的模型RelatedModel,其中后者有一个ForeignKey字段 to MainModel

和相应的 ModelAdmin 类:

这是默认行为,你会得到两个内联,一个用于每个相关模型。问题是如何在MainModel创建实例时完全隐藏所有内联(ModelAdmin's add_view),并在实例字段为RelatedModel1时显示内联,并在when显示内联。typeMainModelTrueRelatedModel2False

我打算为属性创建一个描述符ModelAdmin.inline_instances,但我意识到我需要访问正在编辑的对象实例,但它是作为参数传递的。

有什么帮助吗?

谢谢!

0 投票
1 回答
177 浏览

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

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

这是一些伪代码:

0 投票
1 回答
1240 浏览

python - django inlineformset_factory 额外属性被忽略?

我正在尝试渲染一个内联表单集,但“额外”属性似乎被忽略了。考虑以下模型:

形式:

看法:

和模板:

这仅显示 Bar_form 的一个实例,它应该显示 23 ("extra=23")。任何想法我做错了什么?

谢谢


更新:

事实证明,问题的一部分是我的所有模型类都继承自同一个基类。如果我让它们只从models.Model继承,那么问题就消失了(尽管其他问题出现在他们丑陋的头脑中)。我仍然希望它们从单个类继承,所以我原来的问题仍然存在。


更新更新:

使我的模型的基类抽象:

似乎可以解决问题。我现在可以在我的班级之间使用 ForeignKeys 和 ManyToManyFields。

0 投票
1 回答
5457 浏览

django - 对 django 外键、manytomanyfield、inlineformset_factories 感到困惑

全部,

我缺少有关 Django 的 ForeingKeys 与 ManyToManyFields 基础模型的一些基本信息。

假设我正在构建一个关于汽车的应用程序。我可能有以下课程:

到现在为止还挺好。现在这些类之间有一些关系。一辆汽车有一个制造商并有(四个)轮胎。但从概念上讲,还是有区别的。制造商通过“聚合”关联;一个制造商可以与多辆汽车相关联;删除 Car 实例不应导致该汽车的制造商也被删除。轮子通过“组合”关联;与汽车相关的每四个车轮与该汽车相关联,并且仅与该汽车相关联;删除汽车,车轮也应删除。

所以,直觉上,这意味着我应该做以下事情:

最终,我想使用 inlineformset_factories 以便用户可以同时填写有关汽车、制造商和车轮的详细信息。像这样的东西:

但我发现的大多数文档都表明 ForiegnKey 应该从 Wheel 转到 Car。这对我来说似乎是倒退的,因为 Wheel_formset 然后会向用户显示 Car(“carName”)而不是 Wheel(“radius”)的所有字段。

只是输入这个问题的行为让我感到困惑。任何人都可以阐明我如何构建一个包含所有汽车字段的表单,然后是所有制造商字段,然后是所有车轮字段。

谢谢

0 投票
0 回答
2014 浏览

python - Django 管理员内联弹出窗口

像这里的许多其他用户一样,我在尝试让嵌套的内联表单在 django 管理员中工作时遇到了挫折。

我有一个大致的数据结构

组 - 一些数据字段

巡逻 - 组的外键 - 一些不同的数据字段

Scout - 巡逻的外键 - 更多数据字段

理想情况下,当我去编辑Group记录时,我会让管理界面显示Patrol链接到显示的侦察员的实例StackedInline,然后将Scout与这些巡逻中的每一个相关的记录显示在内部TabularInline但是这目前是不可能的,我已经花了一个大量时间试图移植两年前的补丁,但收效甚微。

据我所知,我有三个选择

  1. 坚持尝试让这个从很久以前的补丁开始工作
  2. 在没有侦察关系的情况下列出巡逻对象,TabularInline并提供一个编辑巡逻成员链接,该链接会弹出一个表单以在新窗口中编辑巡逻。
  3. 只要保持简单,让系统用户在编辑组和巡逻之间来回切换

选项 2 是目前看起来最有希望的,但我需要关于如何弹出一个额外的窗口来编辑巡逻的建议。

任何关于如何做到这一点、如何让嵌套的内联字段工作或其他一般方式的建议将不胜感激。

0 投票
2 回答
19215 浏览

django - Django:如何显示内联表单集中每个模型对象的表单错误

我有一个作者模型和一个书籍模型。用户可以修改给定作者的所有书籍的属性。我希望能够显示每本书的错误,而不是将所有错误都列在顶部,我该怎么做?

楷模

看法

模板

更新的模板:不显示错误

0 投票
2 回答
2738 浏览

django - 单元测试 django 内联表单集

在尝试通过内联表单集以编程方式发布新的 ForeignKey 对象时,我收到一个错误:ValueError: invalid literal for int() with base 10: ''.

这是我的测试代码(为了简洁起见,这里有些臃肿):

视图代码(再次,为简洁起见):

这是测试执行的回溯:

我可以发布模型、表格和更多视图,任何人认为会有帮助的东西。

问题在于'merit-0-id':u''帖子。我尝试过使用和不使用 unicode,使用 0 或 -1,使用False,使用'new'(我知道,这是一个完整的狂野镜头)。

我的主要困惑在于表单在我运行服务器时有效。我在提交表单时检查了 POST 变量,该 id 字段可以为空,并且项目添加得很好。

为什么通过测试运行程序提交表单时会犹豫不决?