django ModelAdmin autocomplete_fields中保存的ID在哪里?

Posted

技术标签:

【中文标题】django ModelAdmin autocomplete_fields中保存的ID在哪里?【英文标题】:Where is ID saved in django ModelAdmin autocomplete_fields? 【发布时间】:2021-10-31 03:01:48 【问题描述】:

我正在为 django 2.2 重写一些管理界面,目前正在使用 django autocomplete_fields 管理功能。简单地说,我有 ModelAdmin 对象 OrderAdmin,它嵌套了 TabularInline ProductAdmin:可以添加到订单中的可变长度产品表。这些ProductAdmin 持有者中的每一个都只包含实际产品类的ForeignKey,以及一些其他属性。

现在我想知道:django 在哪里存储 id - ForeignKey - 使用自动完成字段选择的项目?它没有将选择框中的 OPTION 标记为 selected,并且虽然页面上有带有 #cashregisterproduct_set-0-id 的可疑隐藏输入字段,但它没有任何值.还是有一些特殊的方法可以访问它?我正在考虑将 id 添加到模型和解析的__str__ 方法中,但这很难看。

感谢提示。

编辑:为了使其 100% 清晰,django 从哪里获取通过 autoselect_field 选择的对象的 ForeignKey,从 ModelAdmin 创建新对象时

【问题讨论】:

【参考方案1】:

我误以为这是由 django 管理的。可以使用 select2 框架访问选定的数据:

selected_value = $('.myselectbox').select2().val();

相关:https://***.com/a/47451658/16268461

【讨论】:

请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。

以上是关于django ModelAdmin autocomplete_fields中保存的ID在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

Django:从 ModelAdmin 中访问模型实例?

Django网站管理--ModelAdmin

Django ModelAdmin 查询集覆盖不起作用

如何在 django admin 中组合两个或多个 ModelAdmin

Django:有条件的 ModelAdmin 取决于对象

Django的admin后台