gae错误:AttributeError:'NoneType'对象没有属性'user_is_member' [英] gae error:AttributeError: 'NoneType' object has no attribute 'user_is_member'
本文介绍了gae错误:AttributeError:'NoneType'对象没有属性'user_is_member'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
class Thread(db.Model):
members = db.StringListProperty()
def user_is_member(self,user):
返回str(用户)in self.members
和
thread = Thread.get(db.Key.from_path('Thread',int(id)))
is_member = thread.user_is_member(user)
但是错误是:
Traceback(最近一次调用最后一次):
文件D:\程序文件\Google\google_appengine\google\appengine\ext\webapp\__init __。py ,第511行,在__call__
handler.get(* groups)
文件D:\程序文件\Google\google_appengine\google\appengine\ext\webapp\util .py,第62行,在check_login
handler_method(self,* args)
文件D:\zjm_code\forum_blog_gae\main.py,第222行,获取
is_member = thread.user_is_member(user)
AttributeError:'NoneType'o bject没有属性'user_is_member'
为什么?
感谢
解决方案
您试图通过密钥获取实体,但没有实体具有该密钥。 get()返回None。您需要检查一个有效的实体是否在尝试执行之前返回,如下所示:
thread = Thread.get db.Key.from_path('Thread',int(id)))
如果线程:
is_member = thread.user_is_member(user)
else:
is_member = False
或等效:
thread = Thread.get(db.Key.from_path('Thread',int(id)))
is_member = thread.user_is_member(user)if thread else False
class Thread(db.Model):
members = db.StringListProperty()
def user_is_member(self, user):
return str(user) in self.members
and
thread = Thread.get(db.Key.from_path('Thread', int(id)))
is_member = thread.user_is_member(user)
but the error is :
Traceback (most recent call last):
File "D:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 511, in __call__
handler.get(*groups)
File "D:\Program Files\Google\google_appengine\google\appengine\ext\webapp\util.py", line 62, in check_login
handler_method(self, *args)
File "D:\zjm_code\forum_blog_gae\main.py", line 222, in get
is_member = thread.user_is_member(user)
AttributeError: 'NoneType' object has no attribute 'user_is_member'
why ?
thanks
解决方案
You're attempting to fetch an entity by key, but no entity with that key exists, so .get() is returning None. You need to check that a valid entity was returned before trying to act on it, like this:
thread = Thread.get(db.Key.from_path('Thread', int(id)))
if thread:
is_member = thread.user_is_member(user)
else:
is_member = False
or, equivalently:
thread = Thread.get(db.Key.from_path('Thread', int(id)))
is_member = thread.user_is_member(user) if thread else False
这篇关于gae错误:AttributeError:'NoneType'对象没有属性'user_is_member'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文