Найти - Пользователи
Полная версия: django.utils.functional.__proxy при считывании строки tuple
Начало » Django » django.utils.functional.__proxy при считывании строки tuple
1
NilovSerge
Всем привет

У меня есть tuple вида :
NEWSACCESS_CHOICES = (
('', _('- Select news access -')),
('1', _('View only')),
('2', _('Edit')),
Я пытаюсь програмно в цикле по коду получить значение и получаю строку вида <django.utils.functional.__proxy__ object at 0x0161BDD0>
если убрать вызов фукции интернациализации - то нормальная строка…

Как это побороть ?

Заранее спасибо.
playpauseandstop
убедитесь что вы используете не “ленивый” ugettext… “ленивый” ugettext отдает строки только тогда, когда вы настоятельно у него об этом попросите (unicode(ugettext_lazy('translated')))

ну и пример для пущей уверенности
In [1]: from django.utils.translation import ugettext_lazy as _
In [2]: choices = (
   ...:     (1, _('a')),
   ...:     (2, _('b')),
   ...:     (3, _('c')),
   ...: )
In [3]: for k, v in choices:
   ...:     '%s => %s' % (k, v)
   ...:
Out[3]: '1 => <django.utils.functional.__proxy__ object at 0x1811d90>'
Out[3]: '2 => <django.utils.functional.__proxy__ object at 0x1811e10>'
Out[3]: '3 => <django.utils.functional.__proxy__ object at 0x1811c90>'
In [4]: del _
In [5]: from django.utils.translation import ugettext as _
In [6]: choices = (
    (1, _('a')),
    (2, _('b')),
    (3, _('c')),
)
In [11]: for k, v in choices:
    '%s => %s' % (k, v)
   ....:
Out[12]: u'1 => a'
Out[12]: u'2 => b'
Out[12]: u'3 => c'
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB