我有一个模特:
class Trophy(models.Model):
server = models.CharField(max_length=191, blank=True)
title = models.CharField(max_length=191, blank=True)
note = models.TextField(blank=True)
badge = models.CharField(max_length=191)
badge - 是unicode字符的字段,如or或or☔️等...
我在数据库中有三个奖杯:
我没有问题用徽章获得奖杯☔️:
trophy = Trophy.objects.get(badge=u"☔️")
但我无法得到或:
trophy = Trophy.objects.get(badge=u"")
MultipleObjectsReturned: get() returned more than one Trophy -- it returned 2!
还有一件事:我无法在MySQL Workbench(仅“?”)中看到,直到运行:
SET NAMES utf8mb4;
知道如何在django查询中使用utf8mb4吗?
答案 0 :(得分:0)
通过在django settings.py中添加数据库设置的OPTIONS进行修复:
'OPTIONS': {
'charset': 'utf8mb4',
'use_unicode': True,
'init_command': "SET NAMES utf8mb4;",
}
使用命令
创建数据库CREATE DATABASE feofun_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;