django - django外键修改时如何触发事件
问题描述
我想在用户修改给定外键字段后更新 django 管理站点中的字段。我寻求一种在外键修改后立即触发事件的方法;不是在保存之前/之后。
我寻找通过发送方/接收方创建自定义信号。我还试图找到与 m2m_changed 类似的信号。也许这些路径之一可能是解决方案。
class Variety(models.Model):
specific_name = models.ForeignKey(CatalogList, on_delete=models.CASCADE)
def update_other_field(self):
#DO SOMETHING EACH TIME specific_name IS MODIFIED
有没有办法在修改外键后直接触发事件?
解决方案
您可以覆盖save
“父”模型的方法:
class CatalogList(models.Model):
def save(self, *args, **kwargs):
super().save(*args, **kwargs) # Call normal save method
# Then do what you want with variety_set reverse relation
推荐阅读
- sql-server - SQL 连接字符串,无法使用指定的用户名和密码登录
- command-line-interface - 将大量数据传递给 CLI 命令
- youtube-api - 如何检索绑定到视频的游戏标题
- python - 谁能建议更好的 ASSERT 方法来比较 pytest 中单个数据帧的两列?
- excel - 隐藏在 VBA 中的多行
- php - 部署到实时服务器后,Laravel 5.5 中的 ReflectionException 错误
- javascript - Vuetify - 使用更改事件将所选项目分配给数据属性
- python - UnicodeDecodeError:“utf-8”编解码器无法解码位置 0 的字节 0xc4:
- xamarin - 在 Xamarin 表单中实现自定义 Webview
- java - Getting only aggregations results in elasticsearch