python - django manytomanyfield.add() 方法

标签 python django overriding manytomanyfield

假设我有:

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() 方法时,增加 Album 类上的 photo_count,所以我想覆盖 .add() 方法.问题是,我无法导入 .add() 的类,因为它在方法内部,所以它类似于 def->class->def。那么有没有办法覆盖 .add() ?或者有更好的方法吗?

最佳答案

can use django's signals并编写一个信号处理程序,它将使用 m2m_changed 信号递增计数器:

https://docs.djangoproject.com/en/dev/ref/signals/#m2m-changed

关于python - django manytomanyfield.add() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13321398/

相关文章:

python - 提交时刷新表单 - Django

python - Django Rest Framework 不从条件返回响应代码

objective-c - 重写setter方法并获取“xxx的本地声明隐藏实例变量”

python - 如何用指数曲线拟合数据

数据分析学习的Python包推荐

django - 将 ListCreateAPIView 类添加到路由器

c# - 如何覆盖 List.Add 方法?

CSS - 无法获得一种跨度样式来覆盖另一种继承样式并左对齐

python - 如何为 python 3 创建一个空列表?

python - 将不可变的 Python 对象传递给其构造函数后的身份