m2m字段上的post_save信号

时间:2008-10-27 17:09:41

标签: python django django-signals

我有一个非常通用的文章模型,与标签模型有m2m关系。我想保留每个标签使用的计数,我认为最好的方法是对标签模型上的计数字段进行非规范化,并在每次保存文章时更新它。我怎样才能做到这一点,或者有更好的方法?

2 个答案:

答案 0 :(得分:3)

这是Django 1.2中的一项新功能: http://docs.djangoproject.com/en/dev/ref/signals/#m2m-changed

答案 1 :(得分:2)

您可以通过为M2M关系创建intermediate model并将其用作post_savepost_delete信号的挂钩来更新{{1}中的非规范化列来实现此目的} table。

例如,我为soclone中的优惠Article计数执行此操作,其中QuestionUser s具有M2M关系:

Question

django-developers邮件列表上有一些关于实现声明性地声明denormalisations以避免编写如上代码的方法的讨论: