我有一个2类。
一个看起来是这样的:谷歌应用程序引擎(Python)混淆类'对象没有属性'错误
class Feed(db.Model):
bid = db.StringProperty()
title = db.StringProperty()
url = db.StringProperty()
datecreated = db.DateProperty(auto_now_add=True)
voice = db.StringProperty()
lastchecked = db.DateProperty(auto_now=True)
language = db.StringProperty()
active = db.BooleanProperty()
posts = db.ListProperty(db.Key)
其他看起来像这样:
class Post(db.Model):
title = db.StringProperty()
postdate = db.DateTimeProperty()
author = db.StringProperty()
body = db.TextProperty()
link = db.LinkProperty()
hasmp3 = db.BooleanProperty()
mp3location = db.StringProperty()
processed = db.BooleanProperty()
voice = db.StringProperty()
length = db.FloatProperty()
inprocess = db.BooleanProperty()
haspict = db.BooleanProperty()
pictures = db.ListProperty(db.Key)
我试图通过附加一个帖子这样更新供稿:
blogid = cgi.escape(self.request.get('bid'))
postid = cgi.escape(self.request.get('pid'))
blog = Feed.get_by_key_name(blogid)
post = Post.get_by_key_name(postid)
if post.key() not in blog.posts:
blog.posts.append(post.key())
blog.put()
当我试图“贴”博客的帖子信息,蟒蛇不喜欢它,并告诉我
AttributeError: 'Feed' object has no attribute 'posts'
我之所以如此困惑的原因是因为我几乎将'Feed'添加到'UserClass',其中'UserClass'将'Feed'指定为ListProperty的准确逻辑与' Feed'将'Post'指定为ListProperty。
这是我的意思的例子:
class UserClass(db.Model):
synccode = db.StringProperty()
firstname = db.StringProperty()
lastname = db.StringProperty()
address = db.StringProperty()
address2 = db.StringProperty()
city = db.StringProperty()
state = db.StringProperty()
zipcode = db.StringProperty()
emailaddress = db.StringProperty()
password = db.StringProperty()
mobile = db.StringProperty()
is_authenticated = db.BooleanProperty()
groupid = db.StringProperty()
mobilesynched = db.BooleanProperty()
devicemodel = db.StringProperty()
isatmoscast = db.BooleanProperty()
registerdate = db.DateProperty(auto_now_add=True)
pack = db.StringProperty()
personalcontact = db.BooleanProperty()
lastlogin = db.DateProperty(auto_now_add=True)
isactive = db.BooleanProperty()
feeds = db.ListProperty(db.Key)
这工作得很好:
if blog.key() not in user.feeds:
user.feeds.append(blog.key())
user.put()
这引发错误:
if post.key() not in blog.posts:
blog.posts.append(post.key())
blog.put()
任何帮助,将不胜感激。
你的ListProperty被称为“posts”,而不是“postids “ – geoffspear 2010-07-07 22:42:59
谢谢。这是我玩弄我认为可能是保留名称的一个错字,但那不是问题。我已经更新了代码。 – 2010-07-07 22:49:32
你仍然错过了这个错误。 – 2010-07-07 22:51:06