我正在使用djangio-localeurl根据我的网址提供区域设置切换。除了一点打嗝之外,它的工作原理很好。
在我的一些基于类的视图中,我一直在使用惰性反向函数,否则我会收到有关缺少URL模式的错误。这是由于导入文件的顺序。一种解释如下:
因为在解析期间会评估视图的装饰器 urls.py你有'鸡蛋'问题。方法反转() 由于未读取urls.py,因此无法使用。
似乎django-localeurl monkey-patches Django的内部reverse
功能。此更改工作正常但我的lazy_reverse
函数给了我问题。现在,当我运行测试时,我在使用此lazy_reverse
函数的地方出错。这是我的lazy_reverse
功能代码:
from django.utils.functional import lazy
from django.core import urlresolvers
reverse_lazy = lambda name=None, *args : lazy(urlresolvers.reverse, str)(name, args=args)
我不断得到的错误是:
TypeError: Lazy object returned unexpected type.
我似乎能理解是什么导致了这一点。当我从localeurl
设置中删除INSTALLED_APPS
时,此问题似乎就消失了。
有关如何解决此问题的任何想法?
由于
答案 0 :(得分:2)
似乎lazy_reverse函数出错了。我没有修改lazy_reverse
函数来返回unicode
而不是str
。这是它的样子:
from django.utils.functional import lazy
from django.core.urlresolvers import reverse
reverse_lazy = lazy(reverse, unicode)