gpt4 book ai didi

python - 谷歌应用引擎(python)混淆类 'object has no attribute'错误

转载 作者:太空宇宙 更新时间:2023-11-04 09:20:36 25 4
gpt4 key购买 nike

我有 2 个类(class)。
一个看起来像这样:

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)

我正在尝试通过附加这样的帖子来更新 Feed:

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()

当我尝试将帖子信息“放入”博客时,python 不喜欢它并告诉我

AttributeError: 'Feed' object has no attribute 'posts'

我之所以如此困惑,是因为我几乎有将“Feed”添加到“UserClass”的确切逻辑,其中“UserClass”将“Feeds”指定为 ListProperty,其方式与“Feed”相同有一个指定为 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()

如有任何帮助,我们将不胜感激。

最佳答案

我已将您的模型粘贴到“hello world”main.py 中;然后在本地SDK上运行,在交互控制台输入:

import main as m

p = m.Post()
p.put()
f = m.Feed()
f.put()

if p.key() not in f.posts:
f.posts.append(p.key())
f.put()

print f.posts

正如预期的那样,我在右侧的结果窗口中看到:

[datastore_types.Key.from_path(u'Post', 7, _app=u'helow')]

换句话说,在一个简单的案例中似乎不可能重现您报告的问题。

请制作一个showstheproblem.py尽可能简单(即没有重现问题不可或缺的代码!),显示问题,然后编辑您添加该代码的问题(减去模型,我们已经看到了那些,当然他们的绝大多数领域与这个问题完全无关)。

这始终是报告可疑错误或寻求帮助的正确方法;通常情况下,您会发现在削减代码副本以获取“问题的最小可能重现”的过程中......问题以一种向您展示出了什么问题的方式消失了您的代码放在首位——因此您实际上什至不必就库中不存在的错误寻求帮助或报告!-)

关于python - 谷歌应用引擎(python)混淆类 'object has no attribute'错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3199408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com