В моем приложении django есть некоторые объекты, которые приводят к тому, что соответствующий URL-адрес в администраторе django не является ascii. (например: http://mysite/admin/myapp/myclass/Présentation/
)
Я могу без проблем редактировать объект, но при сохранении у меня появляется следующая ошибка:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 24: ordinal not in range(128), HTTP response headers must be in US-ASCII format
Странно то, что объект правильно сохраняется в базе данных.
Кто-нибудь знает, как администратор Django управляет юникодом? Буду признателен за любую информацию, указатель или идею, которые могут помочь решить эту проблему.
Заранее спасибо
Обновление: вот код модели
class Plugin(models.Model):
"""Some subcontent that can be added to a given page"""
class Meta:
ordering = ['ordering']
name = models.CharField(max_length=32, primary_key=True)
div_id = models.CharField(default='rightcol', max_length=32)
published = models.BooleanField(default=True,
help_text=_("If this is not checked, it is not displayed on the page."))
ordering = models.IntegerField(default=1,
help_text=_("plugins are sorted with this number in ascending order"))
content = models.TextField(blank=True)
registration_required = models.BooleanField(_('registration required'),
help_text=_("If this is checked, only logged-in users will be able to view the page."))
def __unicode__(self):
return u"%s -- %s" % (self.name, self.div_id)
Обновление:
Понятно, что не-ascii символы не рекомендуются в URL. Это причина моей проблемы, и я изменил это.
Кто-нибудь знает, что используется администратором Django для создания URL-адреса объекта. Я думаю, что это первичный ключ. Это правильно? Есть ли способ заставить Django использовать что-то еще и безопасно получить объект?