我有一个自定义管理命令,用于从一个数据库导入数据并从中创建模型实例。基本上是:
class Command(BaseCommand):
def handle(self, **kwargs):
cursor = connections['db2'].cursor()
sql = 'SELECT * FROM table'
cursor.execute(sql)
for row in cursor.fetchall():
my_model = MyModel(*row)
my_model.save()
首先我从sqlite导入到sqlite,一切顺利。但是当我切换到MySQL作为我的主数据库时,我在调用my_model.save()
时开始获取UnicodeEncodeError。需要注意的是,我在db(即俄语)中有非ascii符号,但正如我所知,Django将所有字符串转换为unicode。是的,两个dbs都使用utf-8。