我偶然遇到了一个
django.utils.functional .__ proxy__对象很多次,最后一次在下面的代码中:
def formfield_for_choice_field(self,db_field,request,**kwargs): print db_field.help_text
(打印结果为< django.utils.functional .__ proxy__ object at 0x7fc6940106d0>)
现在呢,为什么这件事呢?它的主要目的是什么?更重要的是,如何访问代理对象背后的值?我看过Django的来源,我看到有关懒惰评估的一些东西,但是有太多的包装和包装对象来完全理解发生了什么.任何细节将高度赞赏.
解决方法
它是一个翻译字符串 – 一个已被标记为已翻译的字符串,但在字符串中使用该对象之前,该字符串的实际翻译结果尚未确定.参见Django文档:
https://docs.djangoproject.com/en/dev/ref/unicode/#translated-strings.
调用unicode(object)将生成一个Unicode字符串.另外,如果你调用__dict__对象,你可以在_proxy____args下找到它的数据.