BUG:AttributeError: 'NoneType' object has no attribute 'settings'

2010-10-31 22:17:04 +08:00
 won
简单搜了AttributeError,发现V2EX以前也出现过类似问题

我的问题现象表现在部分用户注册登录后,右上角面板仅能显示自己的ID,其他的都显示不出来(PC上),在手机上能显示出来,但进入settings时,会直接报500错误

'NoneType' object has no attribute 'settings'
Traceback (most recent call last):
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 511, in __call__
handler.get(*groups)
File "/base/data/home/apps/v2exv2ex/2.345888154485693466/member.py", line 136, in get
template_values['page_title'] = site.title + u' › ' + l10n.settings.decode('utf-8')
AttributeError: 'NoneType' object has no attribute 'settings'

是部分用户,发生频率不确定
7144 次点击
所在节点    Project Babel
8 条回复
Livid
2010-10-31 22:18:36 +08:00
是最新版本么?
won
2010-10-31 22:21:20 +08:00
不是,一直有这个问题,不是更新后产生的
won
2010-10-31 22:22:27 +08:00
site.title + u' › ' + l10n.settings.decode('utf-8')

单看这句是最近修改的问题,但这个情况以前就存在
won
2010-10-31 22:27:04 +08:00
回想了一下 第一次发现是在 把几个文件的l10n的en全部替换zhHans时,不过现在已经改回去了
won
2010-10-31 23:10:37 +08:00
加一点说明,在本地测试完全没有问题,即使注册相同的用户名也不会出现错误,单单是到了GAE上才出现
keakon
2010-11-01 02:49:07 +08:00
看了下源码,建议GetMessages修改一下,在匹配失败时返回一种默认语言(其实只要把第3、5个if判断删掉即可,类似于switch-case中别忘了写default)
http://github.com/livid/v2ex/blob/master/v2ex/babel/l10n/__init__.py
sadara
2010-11-01 08:52:01 +08:00
@won本地测试怎么注册的,那个Google的验证码怎么通过的?
won
2010-11-01 10:32:13 +08:00
@sadara 只要联网就可以啊,验证码一样会传到你本地

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/3909

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX