问题标签 [manytomanyfield]

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 回答
1190 浏览

django - Django模型;保存时在多对多字段中保存额外项目

所以我目前正在为已经存在的数据库实施一个新的标记系统。

当前的标记系统使用 ManyToMany 字段,但是客户端希望有一个逗号分隔的输入字段 (CharField)。

所以我想出了最好的方法,在不危及当前架构的情况下,启用新的逗号分隔字段,但将标签写为以前的 ManyToMany 架构。

但是无论我尝试这样做,标签都会保存到数据库标签模型中,而不是保存在它们应该应用的条目中。

简单介绍:

进一步的模型背景:

0 投票
2 回答
17718 浏览

django - 如何根据过滤器删除多对多关系中的多个对象?

鉴于这两个模型:

我可以使用这个在给定时间之前找到所有源的项目:

如何有效地删除与该查询匹配的所有项目?我想我可以尝试这样的事情:

但这似乎很糟糕。

请注意,我不想删除这些项目,因为它们也可能属于其他来源。我只是想删除他们与特定来源的关系。

0 投票
4 回答
17347 浏览

python - 在 Django Admin 中将 ManyToManyField 显示为复选框

有没有一种简单的方法可以在 Django Admin 中将 ManyToManyField 显示为复选框?提前致谢!

0 投票
3 回答
2178 浏览

django - 如何告诉 Django 不要为 M2M 相关字段创建表?

我正在使用 Django 代码片段的这个小宝石从两个方向编辑 ManyToManyField:

(此处摘录详细信息)

它让我可以从工作表单中选择给定工作中的所有人员,并反过来让我从人员表单中选择一个人的所有工作,并在这两种情况下更新单个 jobs_persons 表。

然而,从 Django 1.0 迁移到 1.2 后,syncdb 现在会生成重复表错误,因为 create_table 显然不再是基类中受支持的属性。

是否有另一种方法来指示 Django 1.2 不要为相关字段创建表?

0 投票
4 回答
3009 浏览

django - 将 Django ModelChoiceField 查询集限制为选定项目

这是我挣扎了一天的事情......

我有一个消息模型,其中一个recipients模型。ManyToManyFieldUser

然后有一个用于编写消息的表单。由于有成千上万的用户,因此在表单中的多选小部件中显示选项并不方便,这是默认行为。相反,使用 FcbkComplete jquery 插件,我使收件人字段看起来像一个输入字段,用户在其中键入收件人,并且它可以工作。

但...

尽管在表单页面上不可见,但所有用户列表都呈现在选择字段中的页面中,这是我不想要的,原因很明显。

我尝试覆盖 ModelChoiceField 的操作验证和查询集的行为,我使用了 MultipleChoice 小部件等。但它们都没有工作并且感觉自然。

那么,避免在客户端拥有整个选项列表但仍然能够针对查询集进行验证的(最佳)方法是什么?

0 投票
3 回答
117535 浏览

django - 如何在 Django 中一次将多个对象添加到 ManyToMany 关系?

基于 Django 文档,我应该能够一次传递多个对象以添加到多对多关系中,但我得到了一个

* TypeError:不可散列的类型:'list'

当我尝试传递一个列表中的 django 查询集时。传递 Queryset 或 ValuesListQueryset 似乎也失败了。有没有比使用 for 循环更好的方法?

0 投票
2 回答
3389 浏览

django - 在 ModelForm 的 Charfield 中显示逗号分隔的 ManyToMany 项目列表

我有一个模型,其中包含一个表“标签”的 ManyToMany 字段。由于这个表可能很大,我不想在表单中显示一个选择,而是一个逗号分隔的标签列表,由一个字符域提供(我想)。

在保存时,我会用逗号拆分列表,然后将它们一一添加(使用 get_or_create)。我已经这样做了。

但是当我想更改数据时,我有一个 ID 列表,而不是标签列表。

如何显示逗号分隔的标签列表?我是否必须为此创建一个新的特定字段?还是已经有一些东西可以做我正在寻找的东西?

谢谢你的帮助!

0 投票
0 回答
2261 浏览

hibernate - HIbernate - “外键引用列数错误。应该是 2" 错误

我一直在寻找这个问题的解决方案一段时间。我发现一些线程谈论导致此问题的多对多关系,但我认为这不适用于我的情况,因此我将其发布在新线程中。

我有以下数据库设计:============================================ ====================================

用户表:PK USER_ID, USER_NAME UNIQUE, ...

项目表:PK ITEM_ID,FK ITEM_SELLER -> 与 user.USER_ID 的多对一关系,FK ITEM_BUYER -> 与 user.USER_ID 的多对一关系,...

投标表(用户和项目之间的桥梁):PK BID_ID,FK BIDDER_ID -> 与 user.USER_ID 的多对一关系,FK ITEM_ID -> 与 item.ITEM_ID 的多对一关系,...

类别表:PK CAT_ID,...

item_category 表(类别和项目之间的桥梁):PK ITEM_CAT_ID,FK ITEM_ID -> 与 item.ITEM_ID 的多对一关系,FK CAT_ID -> 与 category.CAT_ID 的多对一关系,...

==================================================== ==============================

我正在尝试通过 NetBeans 使用休眠进行设置。我找到了指导我设置 hibernate.cfg、reveng 和 util 文件的教程,并向我展示了如何使用 NetBeans 工具生成 POJO。在本教程中,您应该右键单击 cfg 文件并运行 HQL 查询以确保一切正常。我已经使用一个简单的表(上面的用户表)测试了这个过程,并且一切正常。但是,当我尝试将所有内容放在一起时,出现以下错误:

org.hibernate.AnnotationException: A Foreign key refering GavelDB.User from GavelDB.Bid has the wrong number of column. should be 2 at org.hibernate.cfg.annotations.TableBinder.bindFk(TableBinder.java:276) at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:89) at org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:499) at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:304) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286) at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)

正如我之前所说的,我之前搜索这个问题的所有尝试都指向了复合键,但是我已经努力在这个设计中避免它们,所以我不知道这会是什么问题。我是休眠新手,所以我还没有从头开始编写文件的知识库。如果有人能给我一些见解,将不胜感激。提前谢谢!

以下是错误中提到的两个文件供您参考:

BID.JAVA

项目.JAVA

0 投票
3 回答
3335 浏览

ajax - Django:管理员中的 AJAX 多对多字段

我想像ManyToManyFieldadmin 一样在 admin 中显示 s filter_horizontal,但是在用户输入过滤器字段时填充选项。有很多选项,一次加载它们需要很多时间。

我找到了django-ajax-filtered-fields但在我看来这有点过头了,因为它需要更改模型类,而我只想替换表单中的每个多选字段。

编写一个继承自的自定义小部件字段admin.widgets.FilteredSelectMultiple似乎是正确的方法。所以我想推出我自己的小部件:

正确呈现。

但我不确定如何实现这个some_js_to_load_ajax_options.jsajax 部分。我应该编写自己的 jQuery 片段还是修改SelectFilter2附带的 jQuery 片段admin/media/js?以前有人去过吗?

编辑: 虽然与问题的核心无关,因为我只想覆盖字段的小部件,较短的方法是使用formfield_overrides

0 投票
1 回答
533 浏览

django - Django 管理员 ManyToManyField:提高 change_form 的可用性?

我有 Django 模型如下:

有很多科目 - 大约 100 个。

在 Django 管理员上编辑书籍记录时,很难查看特定书籍中存在哪些主题。

Django 管理员提供了一个多选列表,这很棒,但是要查看一本书,您必须滚动整个选择列表。

如果以下任何一种情况都会好得多:

  1. 我可以在多选列表上方提供主题的只读列表,或者
  2. 多选列表从选定的科目开始,然后有一个类似“----”的条目,然后继续其他科目。

有谁知道我如何在 Django 中实现上述任何一个,以提高 Django 管理员中 ManyToManyFields 的可用性?

谢谢!