django manytomanyfield .add()方法
问题内容:
假设我有:
class Album(models.Model):
photos = models.ManyToManyField('myapp.Photo')
photo_count = models.IntegerField(default = 0)
class Photo(models.Model):
photo = models.ImageField(upload_to = 'blahblah')
所需要的是,每次我调用.add()方法时,都要增加photo_count
onAlbum
类,因此我正在考虑覆盖.add()方法。问题是,我无法导入.add()
的类,因为它在方法内部,所以就像def->class->def
。那么有.add()
什么要超越的吗?还是有更好的方法来做到这一点?
问题答案:
您可以使用django的信号并编写一个信号处理程序,该处理程序将使用该m2m_changed
信号递增计数器:
https://docs.djangoproject.com/en/dev/ref/signals/#m2m-changed