计算django ManyToMany关系的“最近使用”

问题描述 投票:0回答:1

我有一个简单的Tag模型,许多其他模型都具有ManyToMany关系。提出了能够在所有具有标签的实体中查询/显示系统中最近使用的标签的要求。

我可以向Tag模型添加used_at属性,并且可以对此进行订购。但是很显然,当其他模型仅引用它时,Tag模型不会被修改,因此该属性上的auto_now对我没有帮助。

[不使用through模型(上面可能带有auto_now_add),并且不使用触发器直接在数据库中直接执行任何不可见的(非Django)魔术,是否有一种明智的方式来更新标签的何时保存引用模型的时间戳?

django django-orm
1个回答
0
投票

您可以使用m2m_changed信号

来自文档:

在模型实例上更改ManyToManyField时发送。严格地说来,这不是模型信号,因为它是由ManyToManyField,但由于它是对pre_save / post_save和在跟踪模型更改时,pre_delete / post_delete包含在这里

© www.soinside.com 2019 - 2024. All rights reserved.