Django 有类似 "database middleware" 的东西吗?

Is Django has something like "database middleware"?

Django 有中间件来实现在请求和响应时做一些事情。 Django 是否有 "database middleware" 来实现写入数据和读取数据时做的事情。

比如有些旧数据库不支持utf8mb4,所以不能支持所有的emoji。如果Django有"database middleware"我会在数据保存的时候编码,在读取的时候解码。

可以overwrite model methods专门保存方法来实现。

文档中的示例 来自 django.db 导入模型

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()

    def save(self, *args, **kwargs):
        # your intended modification
        do_something()
        super(Blog, self).save(*args, **kwargs) # Call the "real" save() method.
        do_something_else()

同时检查 pre_save and post_save 模型信号。