如果可能的话,您可以引入Participation
将Event和User连接起来的模型:
class Participation(models.Model):
user = models.ForeignKey(User)
event = models.ForeignKey(Event)
class Event(models.Model):
users = models.ManyToManyField(User, through='Participation')
并处理发送的pre_save信号Participation
以更新instance.event
计数。这将大大简化m2m的处理。而且在大多数情况下,后来发现,某些逻辑和数据最适合中间模型。如果不是这种情况,请尝试使用自定义解决方案(您应该没有太多将用户添加到事件的代码路径)。