【发布时间】:2016-09-26 12:30:57
【问题描述】:
我有一个问候模型
class Greeting(ndb.Model):
author = ndb.StructuredProperty(Author)
content = ndb.TextProperty(indexed=False)
avatar = ndb.BlobProperty()
date = ndb.DateTimeProperty(auto_now_add=True)
public = ndb.BooleanProperty(default=False)
其中我使用以下代码在 Python Google App Engine 的每个页面上查询七个 Greeting 帖子:
posts_query = Greeting.query(
ancestor=session_key(session_name)).order(-Greeting.date)
curs = Cursor(urlsafe=self.request.get('cursor'))
posts,next_curs, more = posts_query.fetch_page(7, start_cursor=curs)
我希望它只显示已公开修改为 True 的帖子,所以我将其更改为
posts_query = Greeting.query(
ancestor=session_key(session_name), Greeting.public == True).order(-Greeting.date) #line changed
curs = Cursor(urlsafe=self.request.get('cursor'))
posts,next_curs, more = posts_query.fetch_page(7, start_cursor=curs)
但是,它给了我一个错误:
File "/home/ralf/Desktop/google_projects/website/views/events.py", line 28
Greeting.public == True).order(-Greeting.date)
SyntaxError: non-keyword arg after keyword arg
我该如何解决这个问题?这种查询的合适代码是什么?非常感谢您的帮助。
附:如您所见,我也在使用查询游标。
【问题讨论】:
-
我不确定该问题是否一定与 App Engine 有关。 Python 不允许在关键字参数之后使用非关键字参数(位置)。在关键字参数“ancestor=session_key(session_name)”之后,您有一个位置参数“Greeting.content ==“test8”,因此它不是有效的python。
-
@dyeray 抱歉,我要编辑我的问题。这不是现在显示的错误行。
-
@dyeray 现在更新了。 :)
标签: python google-app-engine google-cloud-datastore app-engine-ndb