问题标签 [m2m]
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.
python - Django:快速检索manyToMany字段的ID
我在 Django 中有以下模型模式(使用 Postgres)。
给定一个 A 的 QuerySet,我想尽快返回一个字典,将 QuerySet 中的每个实例映射到其实例的sA
列表。id
related
我当然可以遍历每个 A 并查询相关字段,但是有更优化的方法吗?
python - 使用 Django 在 m2m_changed 阶段中止保存
保存模型时,我需要将 django 多对多字段保存到第三方服务器。但是,第三方服务器可能不可用,在这种情况下,我需要中止整个保存操作。
是否可以从 m2m_changed 阶段中止保存模型?
django - django“是通过模型手动定义的m2m关系......它没有外键”
在这方面有一些亲密的人,但我能找到的只是我正在做的事情,但它不起作用。
这是一个示例:您的产品可以有多个选项。每个选项可以有多个选择。
看起来很简单,我得到这个错误
'options' 是通过模型 Product_Options 手动定义的 m2m 关系,它没有 Product_Options 和 Product 的外键
我尝试了很多不同的东西,包括使用“通过”无法弄清楚为什么这不起作用。这是每个人都说要做的。有任何想法吗?
django - Django中受限的多对多关系
我希望有人能指出我用最 Djangoic 的方式来表示以下与模型的一般关系,以便 Django 的现有逻辑自然地强制执行这种关系。
事物 A 和事物 B 都具有多种类型之一。事物 A 可以与许多、一个或没有事物 B 相关,反之亦然(以对称方式),但是当且仅当它们共享相同的类型时,事物 A 和事物 B 才能相关。
我目前的实现是拥有三个模型,A、B 和 Type,其中 As 和 Bs 有 Type 的外键,A 和 B 有一个 m2m。
这让我可以做我想做的事,但不会强制执行A 不能有另一个类型的 B 的事实。我可以在我控制的视图中使用过滤逻辑,但是在我控制较少的地方,比如在 Admin 中,Django 让我将 As 映射到不同类型的 B。有没有另一种方式来表示 Django 中的 As、Bs 和 Types 之间的关系?
pentaho - OLAP-Pentaho 和 m2m 关系
某人能否告诉我,Pentaho OLAP 的实现是否支持连接 m2m(多对多)?需要解决一个任务:数据存储在下表中:
OLAP 多维数据集(事实表)包含两个维度:人员和位置以及一个度量:计数(fact_id)。
我需要建立一个这样的查询:
结果应该得到这样的数据:
与与 Tom 和 Jay 的人有关的事实相关的位置。
python - Django模型保存方法,更新m2m不起作用
我需要防止用户从模型中的管理员列表中自我杀死:
好吧,这里可能是施了什么黑魔法,让我们试试一个post_save
信号:
只有当断言发生时,它才会在管理员列表中添加一个用户。好吧,可能是黑魔法又出现了,我们试试:
当然,maximum recursion depth exceeded
。怎么了?这种痛苦是不可阻挡的:(
UPD1
看来,该post_save
方法称为BEFORE m2m 关系已保存,因此它遇到了竞争条件,并且新数据被替换为空的表单数据。这是一个糟糕的解决方案:
现在我想知道在完成模型的所有工作后 Django 会发出什么信号?
PS没有魔法。:(
UPD2 谎言
表格.py
视图.py
python - 通过两个连接的 M2M 字段订购 Django 查询集
我有以下 Django 模型(这里非常简化):
出版物可以有作者或编辑,但不能同时有两者。我想按作者和编辑的统一排序,按字母顺序排列的出版物列表。换句话说,我想按一个虚拟字段排序,我们称之为creators
作者和编辑的串联。
查询:
...将没有作者的出版物聚集在一起,并在该组中根据编辑进行排序,这不是我想要的。实际上,它应该使用任何可用于出版物的作者或编辑,并按此排序。
这种排序必须发生在数据库级别,结果集可能很大。
networking - 从远程服务器向家庭网络上的物联网设备发送数据
要阻止连接互联网的设备(假设它是连接互联网的恒温器)必须一直轮询远程服务器以查看用户是否更改了其设置,服务器将如何在需要时将数据发送到该设备?我了解如何从互联网连接设备发起连接,而不是相反。
可以安全地假设设备已经在设备启动的某种设置过程中向服务器注册了它的详细信息。
django - 更新 Django 中现有的 M2M 关系
我正在尝试保存客户记录的现有实例。它的模型对车辆模型具有 M2M(因为客户可以多辆车)。在这里阅读了几个问题/答案后,我仍然不知道如何解决这个问题。
客户型号:
在视图中,定义客户为
我尝试了以下方法:
还尝试在定义 customer_form 之前添加:
然后在表格之后:
表单无效,因此未保存。在检查 {{ form.errors}} 时,它总是报告vehicle_id 是必需的。
最后,在这个答案之后,我通过添加以下内容将其调整为我的场景:
并希望分配vehicle_id,但它立即失败。
我错过了什么?
谢谢。
第一次编辑:视图部分现在如下所示:
python - Python Django (Guardian):根据我的模型中的 m2m 字段编辑数据
我真的很难让我的管理界面正常工作。我有一个模型,并且在该模型中有一个要分组的 m2m 字段:
现在,当模型被保存时,我想给这些组特殊的查看权限,这样只有这些组的成员才能看到该模型的对象。我使用django-guardian来获取每个对象的权限。所以在我的模型的保存方法中,我做了这样的事情:
我也尝试使用 post_save 信号,但问题是,我总是在我的管理界面中按下保存按钮两次以进行任何更改(组总是以正确的方式添加,但权限只添加在第二次通过管理界面中的保存按钮保存模型)那么这里发生了什么?有人可以帮忙吗?
- - 编辑 - -
我的解决方案:我将权限分配代码移到了我的 ModelAdmin 类中,如下所示:
管理员.py