Я смутно знаком с природой юникода, но я не уверен, как все части сочетаются друг с другом.У меня ошибка при отображении конкретных экземпляров на странице администратора.
Поймано UnicodeEncodeError при рендеринге: кодек 'ascii' не может кодировать символ u '\ u2019' в позиции 29: порядковый номер не в диапазоне (128)
Вот моймодель:
class Proposal(models.Model):
project = models.ForeignKey(Project)
dateCreated = models.DateTimeField(editable=False)
xml = models.TextField(max_length=1000000)
def __str__(self):
return str('Proposal for: %s' % self.project.name)
Я зашел в свою базу данных mysql и проверил, что БД, таблица и столбец все сопоставлены как utf8_unicode_ci, поэтому я не понимаю, почему страница пытается отобразиться как ascii,Просматривая различные форумы и документы, я вижу упоминания функций str и unicode , но они, похоже, не имеют к этому никакого отношения, так как список экземпляров хорошо виденна странице администратора.Это просто показывает фактическую форму экземпляра, которая вызывает проблему.
Вот некоторый пример xml, который я извлек из phpmyadmin ...
<?xml version="1.0" encoding="UTF-8"?>
<proposal>
<section title="OVERVIEW">
<section title="Introduction">
<text>
This proposal is not in the system because it was completed as an agreement in Word previous to us getting this application up and running. Please refer to the attachments in this project for documentation or to see the agreement.
</text>
</section>
</section>
</proposal>
Я даже пытался сознательно исключить xml (что я не могу сделать в долгосрочной перспективе, так как я 'Мне бы хотелось, чтобы это было редактируемым в разделе администратора), но я все еще получаю ту же ошибку, так что я даже не уверен, что проблема в xml.Если проблема не в XML, я понятия не имею, что еще может препятствовать отображению этой страницы.
class ProposalAdmin(admin.ModelAdmin):
exclude = ('xml',)
admin.site.register(Project)