Tir*_*ton 1 python google-app-engine
我有2节课.
一个看起来像这样:
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)
Run Code Online (Sandbox Code Playgroud)
另一个看起来像这样:
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)
Run Code Online (Sandbox Code Playgroud)
我试图通过附加这样的帖子来更新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()
Run Code Online (Sandbox Code Playgroud)
当我试图用博文信息'放'博客时,python不喜欢它并告诉我
Run Code Online (Sandbox Code Playgroud)AttributeError: 'Feed' object has no attribute 'posts'
我之所以如此困惑的原因是因为我在向'UserClass'添加'Feed'时几乎有了确切的逻辑,其中'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)
Run Code Online (Sandbox Code Playgroud)
这很好用:
if blog.key() not in user.feeds:
user.feeds.append(blog.key())
user.put()
Run Code Online (Sandbox Code Playgroud)
这会引发错误:
if post.key() not in blog.posts:
blog.posts.append(post.key())
blog.put()
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
我把你的模型粘贴在一个"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
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,我在右侧的结果窗口中看到:
[datastore_types.Key.from_path(u'Post', 7, _app=u'helow')]
Run Code Online (Sandbox Code Playgroud)
换句话说,似乎无法在简单的情况下重现您报告的问题.
请一个showstheproblem.py
,尽可能简单(即没有代码,这不是必不可少重现该问题!),这说明了什么问题,并编辑您的问题添加代码(减去模型,我们已经看到的,当然还有他们绝大多数的领域与这个问题完全无关).
这始终是报告疑似错误或获取帮助的正确方法; 通常情况下,你会发现在削减你的代码副本以获得"最小可能的问题再现"的过程中......问题以一种向你显示错误的方式消失首先是您的代码 - 所以您实际上甚至不必向库中请求帮助或报告不存在的错误! - )
归档时间: |
|
查看次数: |
1419 次 |
最近记录: |