У меня есть следующий код в моем 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
Кто-либо мог объяснить меня, что я делаю неправильно?
Информация о продукте. Это может помочь. На них были представлены продукты в поиске Google.
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 не возвращает эти прокси-объекты.