django: gettext и принуждающий к unicode

У меня есть следующий код в моем django приложении.

class Status(object):

    def __init__(self, id, desc):
        self.id = id
        self.desc = desc

    def __unicode__(self):
        return self.desc

STATUS = Status(0, _(u"Some text"))

Когда я пытаюсь отобразить некоторое состояние (или даже принуждать его к unicode), я добираюсь:

TypeError: coercing to Unicode: need string or buffer, __proxy__ found

Кто-либо мог объяснить меня, что я делаю неправильно?

7
задан gruszczy 25 January 2010 в 16:22
поделиться

1 ответ

Информация о продукте. Это может помочь. На них были представлены продукты в поиске Google.

http://www.vertica.com/

http://www.paraccel.com/

http://www.asterdata.com/index.php

-121--779121-

NumPy и MATLAB используют лежащую в основе реализацию BLAS для стандартных операций линейной алгебры. Некоторое время оба использовали ATLAS , но в настоящее время MATLAB, очевидно, также поставляется с другими реализациями, такими как Math Kernel Library (MKL) Intel. Какой из них быстрее на сколько зависит от системы и как была скомпилирована реализация BLAS. Также можно скомпилировать NumPy с помощью MKL, и Enthought работает над поддержкой MKL для распространения Python (см. маршрутную карту ). Вот также недавняя интересная запись в блоге об этом.

С другой стороны, если вам нужны более специализированные операции или структуры данных, то Python и MATLAB предлагают вам различные способы оптимизации (например, Cython , PyCUDA ,...).

Edit: Я исправил этот ответ, чтобы учесть различные реализации BLAS. Я надеюсь, что сейчас это справедливое представление нынешней ситуации.

-121--1260258-

Функция _ () из Django может возвращать объект django.utils.functional. __ proxy __ , который сам по себе не является объектом Юникода (см. http://docs.djangoproject.com/en/1.1/ref/unicode/#translated-strings ). Python не вызывает unicode () рекурсивно, поэтому для вашего объекта Status является ошибкой прямой возврат объекта __ proxy __ . Необходимо сделать метод __ Юникод __ возвращающим Юникод (self.desc) .

Обратите внимание, что это характерно для Джанго; Собственный gettext Python не возвращает эти прокси-объекты.

22
ответ дан 6 December 2019 в 07:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: