@Klimenko
Fullstack-разработчик

Почему при сохранении строкой с кириллицей в полях админки Django возникает ошибка?

Здравствуйте!

При сохранении любого поля через админку в кириллице вылазит ошибка — UnicodeDecodeError ('ascii' codec can't decode byte 0xd0 in position 58: ordinal not in range(128)).

БД — MySQL, которая работает с Django через MySQL Connector. OS — Mac OS X. Кодировка в БД — везде UTF-8. Все файлы в UTF-8, в самом начале файлов — # -*- coding: utf-8 -*-. При коннекте к БД кодировка тоже указывается.

Код самый тривиальный (почти такой же, как и в мануалах Django):

models.py:
# -*- coding: utf-8 -*- 
from django.db import models

class Lesson(models.Model):
	link = models.CharField(max_length=200)
	name = models.CharField(max_length=200)
	pic_id = models.CharField(max_length=200)


admin.py:
# -*- coding: utf-8 -*- 
from django.contrib import admin
from mytests.models import Lesson

admin.site.register(Lesson)


Если строка в mysql уже с кириллицей, то в админ-панели она отображается отлично, но при пересохранении появляется та же ошибка.

Изучаю Django, но вот уже две недели копаюсь с этой ошибкой. Перерыл тонну вопросов-ответов на эту тематику пересмотрел и всё перепробовал, но никакой ответ, к сожалению, не подошёл.
  • Вопрос задан
  • 5414 просмотров
Решения вопроса 1
@Klimenko Автор вопроса
Fullstack-разработчик
Ошибка таки в коннекторе была. С горем пополам поставил и теперь работает django.db.backends.mysql, всё сохраняется и работает на ура!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ali_aliev
@ali_aliev
Разработчик на Django/Python, JavaScript
from django.utils.encoding import smart_unicode
class Lesson(models.Model):
....
    def __unicode__(self):
        smart_unicode(return self.name)


попробуйте. возможно еще пригодится postgresapp.com вместо мускула.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы