<分区>
假设我有这样的模型
class Event(models.Model)
users_count = models.IntegerField(default=0)
users = models.ManyToManyField(User)
如果事件添加/删除一些用户,您会建议如何更新 users_count 值?
<分区>
假设我有这样的模型
class Event(models.Model)
users_count = models.IntegerField(default=0)
users = models.ManyToManyField(User)
如果事件添加/删除一些用户,您会建议如何更新 users_count 值?
最佳答案
如果可能的话,您可以引入 Participation
模型来加入事件和用户:
class Participation(models.Model):
user = models.ForeignKey(User)
event = models.ForeignKey(Event)
class Event(models.Model):
users = models.ManyToManyField(User, through='Participation')
并处理 Participation
发送的 pre_save 信号以更新 instance.event
计数。它将显着简化 m2m 的处理。在大多数情况下,后来证明某些逻辑和数据最适合中间模型。如果您不是这种情况,请尝试自定义解决方案(无论如何,您不应该有很多代码路径将用户添加到事件中)。
关于python - Django manytomany 信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1958540/
相关文章:
python - nosetest输出中字符 `S`代表什么
python - docker-lambda sqlalchemy选择,无结果
python - Mysqlclient 需要 MS Visual C++ 10.0,它又需要 .Net Framework 4
django - 在 Django 中,当登录用户提交表单时,如何自动将用户名添加到模型中
python - Django Rest Framework,关系 POST 选项名称
python - 对于 django social_auth 中的类型字符 varying(16),DataError 值太长
python - 狮身人面像 : Link to a method of a class in another module in Python docstring