Django有类似“数据库中间件”的东西吗?

时间:2015-05-05 13:52:06

标签: python django database middleware django-middleware

Django有中间件来实现请求和响应时做的事情。 Django是否有“数据库中间件”来实现写入数据和读取数据时的某些功能。

例如,某些旧数据库不支持utf8mb4,因此它不支持所有表情符号。如果Django有“数据库中间件”,我将在保存时对数据进行编码,并在读取时进行解码。

1 个答案:

答案 0 :(得分:0)

您可以overwrite model methods特别保存方法来实现此目的。

来自docs的示例 来自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_savepost_save模型信号。