fbpx

Как добавить русские символы в бд?

307 просмотра
0
0 Комментариев

У меня не получается добавить русские слова в бд. К примеру есть такая модель:

class Author(models.Model):
    name = models.CharField(max_length = 50)
 
class Book(models.Model):
    author = models.ForeignKey(Author)
 
#добавление в бд
s = 'Привет мир'
us = s.decode('utf-8')
a = Author.objects.create(name = us) # нормально добавляет
Book.objects.create(name = a) # здесь Bad Unicode data

Как правильно добавить данные в бд? Я похоже, чего то простого не понимаю.


Добавить комментарий

2 Answers

Python Опубликовано 25.06.2019
0

Прежде всего в файле, в котором Вы используете русские символы, укажите системе, что кодировка по умолчанию UTF-8.
Это делается при помощи строки:

# -*- coding: utf-8 -*-

в первой строке файла. Дальше можете использовать русские символы без декодирования/кодирования. Не забывайте, что БД или таблица, в которую вы пишите, тоже должна иметь базовую кодировку utf8_unicode.

В консоли всё проще. Скажите строке, что она Юникодная:

s = u'Привет мир'

Строка us = s.decode(‘utf-8’) в этом случаи более не нужна.

А для вставки записи в БД вы забыли вызвать save():

a.save()

Добавить комментарий
0

В первом случае в таблицу с авторами добавляете строку «а», а во втором случае при работе с книгами вместо строки работаете с объектом базы данных.
p.s. попробуйте добавить вместо этой пародии тупо через админку, там хотя бы напишет, какие ошибки, а не просто не удаётся добавить.

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up