Джанго дважды экранирует заголовки в подкастах

Я использую Django 1.2, и у меня возникают проблемы при создании хорошего XML для подкаста. Любые заголовки, содержащие одинарные кавычки, двойные кавычки или амперсанды, выглядят как двойные экранированные, выглядя так:

<title>Podcast: &amp;quot;But we had hoped...&amp;quot;</title>

Что означает, что они появляются так:

Podcast: &quot;But we had hoped&quot;

Я нашел этот билет, но он был закрыт много лет назад.

Я создаю свой фид, используя этот фрагмент, и просто вставляю значение в поле модели в self.title немного, вот так:

class iTunesPodcastPost():
  def __init__(self, talk):
    self.id = talk.id
    self.approval_date_time = talk.created
    self.title = talk.title # Looks wonky
    self.summary = talk.details # Looks fine
    self.enclosure_url = talk.mp3.url
    self.enclosure_length = talk.mp3.size
    self.enclosure_mime_type = u'audio/mpeg'
    self.duration = '%s' % talk.seconds
    self.explicit = u'clean'
    self.info_url = talk.get_absolute_url()

В случае, если это помогает, подача подкаста здесь.

1 ответ

Решение

Похоже, это произошло потому, что я не смог предоставить item_title метод на моем Feed подкласс.

Однажды я добавил:

def item_title(self, item):
   return item.title

Все было хорошо. Ранее он по умолчанию называл мой товар __unicode__ метод с причудливыми результатами. Не совсем удовлетворительное решение (я до сих пор не знаю, почему оно сломалось), но, по крайней мере, оно работает сейчас.

Другие вопросы по тегам