我有一个简单的Tag模型,许多其他模型都具有ManyToMany关系。提出了能够在所有具有标签的实体中查询/显示系统中最近使用的标签的要求。
我可以向Tag模型添加used_at
属性,并且可以对此进行订购。但是很显然,当其他模型仅引用它时,Tag模型不会被修改,因此该属性上的auto_now
对我没有帮助。
[不使用through
模型(上面可能带有auto_now_add
),并且不使用触发器直接在数据库中直接执行任何不可见的(非Django)魔术,是否有一种明智的方式来更新标签的何时保存引用模型的时间戳?
您可以使用m2m_changed信号
来自文档:
在模型实例上更改ManyToManyField时发送。严格地说来,这不是模型信号,因为它是由ManyToManyField,但由于它是对pre_save / post_save和在跟踪模型更改时,pre_delete / post_delete包含在这里