4

Incorrect string value (Exception Value: Incorrect string value: '\xEA\xB0\x95\xED\x95\x98...' for column 'object_repr' at row 1)Django と MySQL で Unicode 文字列 (韓国語) を保存しようとするとエラーが発生します。最初の問題は、データベース テーブルの各列の「文字列値が正しくありません」というエラーでした。ただし、列の照合順序とデータベース全体の文字セットを変更することで、これを理解しました。

私が得ている新しいエラーは、models.py のunicode (self) メソッドに関連しています。私の models.py は次のとおりです。

from django.db import models

# Create your models here.
class User(models.Model):
full_name = models.CharField(max_length=60)
email = models.EmailField(unique=True)
password = models.CharField(max_length=128)
birthday = models.DateField(null=True, blank=True)
gender = models.PositiveIntegerField(null=True, blank=True)
location = models.CharField(max_length=60, null=True, blank=True)
captcha = models.CharField(max_length=60, null=True, blank=True)

register_date = models.DateTimeField()
lastLogin_date = models.DateTimeField(null=True)
num_logins = models.PositiveIntegerField()

def __unicode__(self):
    return self.full_name

__unicode__関数がutf8文字を出力しようとすると、エラーが生成されます...

このエラーを修正する方法を知っている人はいますか?

4

3 に答える 3

9

MySQLコンソールで実行

ALTER DATABASE django_db CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE django_admin_log MODIFY object_repr VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;

私にとっては助かります。

于 2012-08-01T19:29:23.990 に答える
-1

このファイルの最初に次のように1行追加してみてください。

#-*- encoding=UTF-8 -*-
于 2012-07-16T09:57:19.463 に答える
-1

ファイルを変更することでこの問題を解決しましたsettings.py: 使用しない'ENGINE': 'django.db.backends.mysql'でください。

于 2014-06-29T04:23:06.163 に答える