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()
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()