Я смутно знаком с природой юникода, но я не уверен, как все части подходят друг другу. У меня есть ошибка при отображении конкретных экземпляров на странице администратора.
Пойманный 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 и подтвердил, что DB, таблица и столбец сопоставлены как 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 (который я не могу сделать в конечном итоге, так как я хочу, чтобы он редактировался в разделе admin), но я все равно получаю ту же ошибку, m даже не убедил, что xml - это даже проблема. Если xml не проблема, я понятия не имею, что еще может не отображать эту страницу.
class ProposalAdmin(admin.ModelAdmin):
exclude = ('xml',)
admin.site.register(Project)